日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

装箱问题C语言报告,装包装箱问题 (C语言代码)

發布時間:2025/3/19 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 装箱问题C语言报告,装包装箱问题 (C语言代码) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

解題思路:貪心算法。

(1) 6*6的產品每個會占用一個完整的箱子,并且沒有剩余空間

(2) 5*5的產品每個占用一個新的箱子,并且留下 11 個可以盛放 1*1 的產品的剩余空間

(3) 4*4的產品每個占用一個新的箱子,并且留下 5 ?個可以盛放 2*2 的產品的剩余空間

(4)?3*3的產品情況比較復雜,首先3*3 的產品不能放在原來裝有 5*5 或者 4*4 的箱子中,那么必須為3*3 的產品另開若干個新的箱子,新開的箱子數目等于 3*3 的產品的數目除以4向上取整(可以使用ceil函數),同時需要討論為 3*3 的產品新開箱子時,剩余的空間可以盛放多少 2*2 和 1*1 的產品:

① 3*3 的產品的數目恰好是4的倍數,此時還剩0個2*2的空位;

② 3*3 的產品數目是 4 的倍數加1, 此時還剩5個2*2的空位和7個1*1的空位;

③ 3*3 的產品數目是 4 的倍數加2, 此時還剩3個2*2的空位和6個1*1的空位;

④ 3*3 的產品數目是 4 的倍數加3, 此時還剩1個2*2的空位和5個1*1的空位;

(5)處理完3*3的產品,就可以比較一下剩余的2*2的空位和2*2產品的數目,如果產品數目多,就將 2*2 的空位全部填滿,再為2*2 的產品打開新箱子;

(6)比較一下剩余空間與 1*1 的產品數目,如果空位多,將1*1的產品全部填入空位即可;否則,先將1*1的空位填滿,然后再為 1*1 的產品打開新的箱子。

注意事項:使用ceil函數可以實現向上取整。double?ceil(double x); 功 能: 返回大于或者等于指定表達式的最小整數。注意返回的是一個浮點數哦。

參考代碼:#include?

#include?

int?main()

{

int?box[7]={0};

int?i,sum,totalbox,space2_num,space1_num;?//totalbox:?需要的箱子數目,space2_num:2*2?的空位數目

//?space1_num:?1*1?的空位數目。

int?space2[4]={0,5,3,1};?//數組space2表示?3*3?的產品數目分別是?4的倍數,4?的倍數+1,?4?的倍數+2,

//4的倍數+3時為3*3的產品打開的新箱子中剩余的?2*2的空位的個數

while(1)

{

sum=0;

for(i=1;i<=6;i++)

{

scanf("%d",&box[i]);??//輸入?1*1?至?6*6?這六種產品的數量分別保存在box[1]到?box[6]中

sum=sum+box[i];

}

if(sum==0)?break;

totalbox=box[6]+box[5]+box[4]+ceil(?box[3]?/?4.0?);??//較大的產品只能自己開箱

space2_num=box[4]*5+space2[?box[3]%4?];??//每一個4*4的箱子裝過后還可以再裝5個2*2的箱子

//還有3*3的箱子如果沒填滿6*6的箱子的話,也可以用來裝2*2的箱子

if(box[2]>space2_num)

totalbox+=ceil(?(box[2]-space2_num)?/?9.0?);

space1_num=totalbox*36-(box[6]*36+box[5]*25+box[4]*16+box[3]*9+box[2]*4);

//space1_num存放多出來的面積即1*1的空位數目

if(box[1]>space1_num)??//空間不夠則新開箱

totalbox+=ceil(?(box[1]-space1_num)?/?36.0?);??//向上取整

printf("%d\n",totalbox);

}

return?0;

}

總結

以上是生活随笔為你收集整理的装箱问题C语言报告,装包装箱问题 (C语言代码)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。