早教吧 育儿知识 作业答案 考试题库 百科 知识分享

修房子需要三种不同类型的砖头,分别为1*20,1*28,1*32的,只有1*75的砖头,不过大砖头可以裁成小砖头,至少需要买多少1*75的砖头才够用.输入数据第一行包含三个整数X,Y,Z(00;x=x-2,y--)n++;for(;z>1;z=z-2

题目详情
修房子需要三种不同类型的砖头,分别为1*20,1*28,1*32的,只有1*75的砖头,不过大砖头可以裁成小砖头,至少需要买多少1*75的砖头才够用.输入数据第一行包含三个整数X,Y,Z(00;x=x-2,y--)
n++;
for(;z>1;z=z-2)
n++;
for(;y>0&&z>0;y--,z--)
n++;
for(;x>2;x=x-3)
n++;
for(;y>1;y=y-2)
n++;
for(;x>0&&z>0;x--,z--)
n++;
for(;x>0&&y>0;x--,y--)
n++;
if(x>0)
n++;
if(y>0)
n++;
if(z>0)
n++;
printf("%d",n);
}
▼优质解答
答案和解析
看了一下问题,发现2号砖(1*28)和3号砖(1*32)在本质上好像可以当一种砖处理,因为在原料砖分切时不管是他们中的哪种都只能分切出 2个 或 1个加2个1号砖(1*20)
那么
int x,y,z,n=0;
scanf("%d%d%d",&x,&y,&z);
if(x100||y100||z100)
return 0;
y=y+z;
for(;x>1&&y>0;x=x-2,y--)
n++;
for(;x>2;x=x-3)
n++;
for(;y>1;y=y-2)
n++;
if(x>0||y>0)
n++;
printf("%d",n);