德·梅齐里亚克的砝码问题

王朝百科·作者佚名  2010-01-06  
宽屏版  字体: |||超大  

问题一位商人有一个40磅的砝码,由于跌落在地而碎成4块.后来,称得每块碎片的重量都是整磅数,而且可以用这4块来称从1至40磅之间的任意整数磅的重物.

问这4块砝码碎片各重多少?

答案1,3,9,27

C语言解答

#include <stdio.h>

#include <stdlib.h>

int isCorrect(int a,int b,int c,int d,int val)

{

int x1,x2,x3,x4;

int flag;

flag=0;

for(x1=-1;x1<2;x1++)

{

for(x2=-1;x2<2;x2++)

{

for(x3=-1;x3<2;x3++)

{

for(x4=-1;x4<2;x4++)

{

if(val==a*x1+b*x2+c*x3+d*x4)

flag=1;

}

}

}

}

return flag;

}

int main()

{

int a,b,c,d;

int flag=1;

int val;

for(a=1;a<11;a++)

{

for(b=a;b<40;b++)

{

for(c=b;c<40;c++)

{

for(d=c;d<40;d++)

{

if(a+b+c+d==40)

{

flag=1;

for(val=1;val<41&&flag;val++)

{

flag=isCorrect(a,b,c,d,val);

flag=flag*flag;

}

if(flag)

{

printf("a=%d,b=%d,c=%d,d=%d",a,b,c,d);

}

}

}

}

}

}

return 0;

}

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝百科 版权所有