前情提要
//装箱问题官方代码 #include "stdio.h"int main(){ //N代表最少箱子数目,abcdef分别为边长为1、2、3、4、5、6的小正方形数目 //x,y分别为空余的1*1和2*2的小正方形 int N,a,b,c,d,e,f,x,y; int u[4]={0,5,3,1};//装填3*3之后剩下的2*2格子数 while (1) { scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f); if (a==0&&b==0&&c==0&&d==0&&e==0&&f==0) { break; } N=f+e+d+(c+3)/4;//目前需要的箱子 y=u[c%4]+5*d; if (b>y) { N=N+(b-y+8)/9; } x=36*N-36*f-25*e-16*d-9*c-4*b; if (a>x) { N=N+(a-x+35)/36; } printf("%d\n",N); }}
练习题
1、平均年龄
//1. 平均年龄#include "stdio.h"int main(){ int i=0; int input=-1;//输入0作为结束 int sum=0; while (input!=0) { scanf("%d",&input); sum=sum+input; i++; } float answer=sum/i; printf("%5.2f\n",answer); return 0;}
2、数字求和
#include "stdio.h"int main(){ int i,sum=0; int a=0; int sz[5]; scanf("%d",&a); for (i=0;i<5 ;i++ ) { scanf("%d",&sz[i]); if (sz[i]>=a) { sz[i]=0; } sum+=sz[i]; } printf("%d\n",sum);}
3、两倍
//3、两倍#include "stdio.h"int main(){ int i,j,count; int flag=0; int input[15],sz[15];//15个正整数 for (i=0;i<15 ;i++) { scanf("%d",&input[i]); if (input[i]<=0) //小于等于0作为结束标志 break; sz[i]=2*input[i]; } for (j=0;j
4、肿瘤面积
占位