题目:有1*1,2*2,3*3,4*4,5*5,6*6大小的盒子,要把它们装到6*6的盒子里,它们的高度都是相同的,用最少的6*6盒子把所有尺寸的盒子都装起来。
代码:#include<iostream>
using namespace std;
int main()
{
int value[7];
int a[4]={0,5,3,1};
while(1)
{
int b=0;
for(int i=1;i<7;i++)
{
cin>>value[i];
b+=value[i];
}
if(b==0)
{
break;
}
int sum=0;
sum=value[6]+value[5]+value[4]+(value[3]+3)/4;
int c=value[4]*5+a[value[3]%4];
if(value[2]>c)
sum+=(value[2]-c+8)/9;
int x=sum*36-value[6]*36-value[5]*25-value[4]*16-value[3]*9-value[2]*4;
if(value[1]>x)
sum+=(value[1]-x+35)/36;
cout<<sum<<endl;
}
return 0;
}
感想:这种题必须要想清楚了再做。