罗威纳犬图片幼犬:用C语言解决 称重组合问题

来源:百度文库 编辑:高校问答 时间:2024/04/30 01:21:40
称重组合问题
问题描述:设有1克、2克、5克、10克、20克、50克的砝码各一枚,问使用这些砝码在天平上可称出多少种不同的重量?
要求:1)输出可以称出的所有重量数;
2)对每种可以称出的重量数给出如何称出的方法解释。
请给出具体的程序代码,算法解释.谢谢!!
假如左右托盘都允许放砝码假如左右托盘都允许放砝码。可以秤出1克到88克之间任何一个整的克数.
这个程序该怎样编啊?

/*
help用来产生一个01序列,从000000到111111变化,
1表示对应的砝码被选中,0表示没有被选中,
选中的砝码加到纪录的数组中,在每个循环末尾显示
*/
#include "stdio.h"
#include "conio.h"
main()
{
int help[6]={0},num[6]={1,2,5,10,20,50},i,j,counter=0,record[63]={0};
while(counter!=63)
{
for(i=0;i<6;i++)
{
if(!help[i])
{
help[i]=1;
for(j=i-1;j>=0;j--)
help[j]=1-help[j];
break;
}
}
for(i=0;i<6;i++)
{
if(help[i]==1)
{
printf("%d+",num[i]);
record[counter]+=num[i];
}
}
printf("\b=%d\n",record[counter++]);
}
return 0;
}