55 lines
979 B
C++
55 lines
979 B
C++
#include <stdio.h>
|
||
#include <stdlib.h>
|
||
#include <math.h>
|
||
|
||
int count_num = 0 , count = 1 , temp ;
|
||
|
||
int calculate(int i ,int count_num, int num ){
|
||
int a = 0;
|
||
if(num>=i) {
|
||
num -= i;
|
||
count_num++;
|
||
}else if(num!=0){
|
||
count_num++;
|
||
printf("\n最小包擺\裝紙面積 = %d\n",(count_num+i+temp)*2*100);
|
||
printf("\n包裝方式為擺\放若干排:\n\n");
|
||
printf("第%d排,擺\%d個\n",count,i);
|
||
count++;
|
||
a = num;
|
||
return a;
|
||
}else{
|
||
printf("\n最小包擺\裝紙面積 = %d\n",(count_num+i+temp)*2*100);
|
||
printf("\n包裝方式為放若干排\n\n");
|
||
a = num;
|
||
return a;
|
||
}
|
||
|
||
a = calculate(i,count_num,num);
|
||
|
||
if(num != temp - i || temp%i==0){
|
||
printf("第%d排,擺\%d個\n",count,i);
|
||
}else {
|
||
printf("第%d排,擺\%d個\n",count,a);
|
||
}
|
||
|
||
count++;
|
||
return a;
|
||
}
|
||
|
||
int main(){
|
||
int num ,i=0;
|
||
printf("*** 最小包裝面積之郵寄包過程式 ***\n\n輸入糖磚數 ==> ");
|
||
scanf("%d",&num);
|
||
if(num<=0){
|
||
printf("\n輸入錯誤");
|
||
return 0;
|
||
}
|
||
|
||
i = sqrt(num);
|
||
temp = num ;
|
||
|
||
calculate(i,count_num,num);
|
||
|
||
return 0;
|
||
}
|