样本问题

来源:互联网 发布:匈奴 知乎 编辑:程序博客网 时间:2024/04/29 15:56
#include<stdio.h>/*问题描述:有10箱产品,每箱有1000件,正品每件100克。其中有几箱是次品,每件次品比正品轻10克。问能否用称只称一次,就能找出哪几箱是次品。*/int main(){int i,n;int w1,w,t;printf("input the number of boxes:");scanf("%d",&n);t=1;w1=0;for(i=0;i<n;i++){printf("%d box takes %d units\n",i+1,t);w1+=t;t=t*2;}    w1 = w1*100;printf("normal weight : %d\n",w1);printf("input the weight of the choosen boxes:");scanf("%d",&w);w1 = (w1-w)/10;while(w1!=0){i=0;t=1;while(w1-t>=0){t=t*2;i++;}printf("%d is bad\n",i);w1=w1-t/2;}return 1;}/*算法解析:先将箱子编号1,2,3,4,……,10。1,2,3,4,……,10号箱取产品的件数分别为20,21,22,23,24,25,26,27,28,29,即1,2,4,8,16,32,64,128,256,512件。则  轻10克1号箱为次品。  轻20克2号箱为次品。  轻30克1,2号箱为次品。  轻40克3号箱为次品。  轻50克1,3号箱为次品。  …………*/  

	
				
		
原创粉丝点击