#include<stdio.h>
int get(int weight,int i,int j,int k,int l)
{
int p1,p2,p3,p4;
for(p1=-1;p1<=1;p1++)
{
for(p2=-1;p2<=1;p2++)
{
for(p3=-1;p3<=1;p3++)
{
for(p4=-1;p4<=1;p4++)
{
if(i*p1+j*p2+k*p3+l*p4==weight)
return 1;
}
}
}
}
return 0;
}
void main()
{
int i,j,k,l,weight;
printf("40磅的砝码分解成四种不同重量的砝码,可有为以下的方案来实现可称出40磅内不同重量的物体:\n");
for(i=1;i<10;i++)
{
for(j=i+1;j<20-i;j++)
{
for(k=j+1;k<30-i-k;k++)
{
for(l=k+1;l<=40-i-j-k;l++)
{
if(i+j+k+l==40)
{
for(weight=1;weight<=40;weight++)
{
if(!get(weight,i,j,k,l))
break;
}
if(weight >40)
printf("%d %d %d %d\n",i,j,k,l);
}
}
}
}
}
纯C语言:40磅砝码称重源码
这是一个使用C语言编写的程序,通过循环遍历的方式寻找40磅重量可以由四种不同重量的砝码组合而成的所有可能方案。程序包含两个主要部分,分别用于找出所有可能的砝码组合和验证这些组合是否能称出1到40磅的所有重量。
摘要由CSDN通过智能技术生成