iT邦幫忙

DAY 1
0

大家一起來上coursera!系列 第 1

Homework 1_表面積與體積

  • 分享至 

  • xImage
  •  

簡易版

#include <stdio.h>

main( )

{

int a,b,c,d,e,s,v;

scanf("%d %d %d %d %d",&a,&b,&c,&d,&e);

s=2*(a*b+b*c+c*a)+8*d*(a+b+c-6*e);

v=a*b*c-2*d*((a-2*e)*(b-2*e)+(a-2*e)*(c-2*e)+(c-2*e)*(b-2*e));

printf("%d %d", s,v);

}

清楚說明版

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
// 先不要管 d, e 的值是否合理
int a, b, c, d, e;
// a= 6; b= 8; c= 10; d= 1; e= 2;
// answer= 472, 392

scanf("%d %d %d %d %d", &a, &b, &c, &d, &e);

// 先處理體積的部分
int v, v1, v2, v3;
v= a*b*c;

// 就a, c構成的面,必須扣除的體積
v1= d*(a - 2*e)*(c - 2*e);

// 就a, b構成的面,必須扣除的體積
v2= d*(a - 2*e)*(b - 2*e);

// 就b, c構成的面,必須扣除的體積
v3= d*(b - 2*e)*(c - 2*e);

// 因為前後,左右,上下對稱扣除
v-= (2*(v1 + v2 +v3)) ;
// printf("vol= %d \n", v);
// -------------------------------------------

// area --> r
int r, r1, r2, r3;
r= 2*(a*b + b*c + c*a);

// 就a, b構成的面,必須增加的面積
r1= 2*(d*(a - 2*e) + d*(b - 2*e));

// 就b, c構成的面,必須增加的面積
r2= 2*(d*(b - 2*e) + d*(c - 2*e));

// 就c, a構成的面,必須增加的面積
r3= 2*(d*(c - 2*e) + d*(a - 2*e));

// 因為前後,左右,上下對稱增加
r+= 2*(r1 + r2 + r3) ;
printf("%d %d\n", r, v);

return 0;
}

答題使用 http://ideone.com/wv766W


下一篇
Homework 2_卡車位置
系列文
大家一起來上coursera!2
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言