①必须有1磅的砝码,否则39磅的重量无法称出.
②有了1磅的砝码后,再加上一个3磅的砝码,可称出2~4磅的重量.
③有了1磅和3磅的砝码后,再加上一个9磅的砝码,可称出5~13磅的重量.
④有了1、3、9磅的砝码后,再加上一个27磅的砝码,可称出14~40磅的重量.
所以这4块砝码碎片分别是1、3、9、27磅,即首项为1,公比为3的等比数列.
for (a=1; a<=37; a++)
for (b=1; b<=37; b++)
for (c=1; c<=37; c++)
if ( (a+b+c+d == 40) && (a!=b)&&(a!=c)&&(a!=d) &&(b!=c) &&(b!=d) &&(c!=d) )
printf("%d %d %d %d\n%d\n", a, b, c, d, count);
int count = 0;
for (a=1; a<=40; a++)
for (b=a+1; b<=40-a; b++)
for (c=b+1; c<=40-a-b; c++)
for (d=c+1; d<=40-a-b-c; d++ )
if (a+b+c+d == 40)
{
printf("%d %d %d %d\n%d\n", a, b, c, d,count);
}
int weight;
for (w1=-1; w1<=1; w1+=1)
for (w2=-1; w2<=1; w2+=1)
for (w3=-1; w3<=1; w3+=1)
{
if (w1*a+w2*b+w3*c+w4*d == weight) //weight为1-40之间任意整数
{
printf("The four pieces'weight are %d %d %d %d\n",a, b, c, d);
return 0;
}