一个商人有一个质量为40磅的砝码
一个商人有一个质量为40磅的砝码,一天他不小心将砝码摔成了4块。
商人发现每块砝码的质量都是整数磅,而且每块砝码的质量各不相同,
并且发现这4块砝码碎片可以在天平上称出1—40磅之间的任意质量(整数磅,即1磅,2磅,……)。
问这4块砝码碎片的质量各是多少?
#include
using namespace std;
int a[4];
int b[4];
bool c[41];
void dfs(int id){ if(id>=4){int w=0;for(int i=0;i<4;i++){if(b[i]==1){w+=a[i];}else if(b[i]==2){w-=a[i];}}if(w<0) w=-w; c[w]=true;}else{b[id]=0;dfs(id+1);b[id]=1;dfs(id+1);b[id]=2;dfs(id+1);b[id]=0;}
}
bool isGood(){for(int i=1;i<=40;i++){if(c[i]==false){return false;}}return true;
}
void test(int x1,int x2,int x3,int x4){a[0]=x1;a[1]=x2;a[2]=x3;a[3]=x4;for(int i =1;i<=40;i++){c[i]=false;}dfs(0);if(isGood()){for(int i=0;i<4;i++){if(i!=0) cout<<" ";cout<k){test(i,j,k,l);}} }}return 0;
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
