有1000个苹果和10个筐子,筐子的编号为1-10.现要将这1000个苹果放入这10个筐子,要求:
(1)从1-1000中任取1个数字,这个数字都能由10个筐子中的某几个筐子的苹果数和组成.
(2)筐中的苹果是一个整体,不能取筐中的一部分苹果,即一旦选取某个筐子,该筐的苹果数就必须全部计入.
代码:
#include <iostream>
using namespace std;
int main()
{
int a[10]={1,2,4,8,16,32,64,128,256,489};
int x;
int b=0,c=1,e=1; //b和c为输入苹果数量与数组的比较,e循环
cin>>x;
while(x!=0){
//比较是否有相同的,有就输出结果再退出循环
if(x==a[b]||x==a[c]){
cout<<"苹果数量:"<<x<<endl;
e=0;
}
if(e==0)
break;
//逐个比较
if(x>=a[b]&&x<=a[c]){
x=x-a[b];
cout<<"苹果数量:"<<a[b]<<endl;
b=-1;
c=0;
}
++b;
++c;
}
cout <<endl<< "Hello World" <<endl;
return 0;
}
效果图: