看看这个题目的算法
问题如下:1A+2B+3C+4D+5E+6F+7G=X其中X为已知量,A至G为未知量,取值范围是1-22 ,不能重复,设计一个程序将未知量求出
大家有没有好的算法,刚看到这题目.来这看看大家的意思.
程序代码:#include <stdio.h>
int main(void){
int a,b,c,d,e,f,g;
int x;
printf("Please enter x:\n");
scanf("%d",&x);
for(a=1;a<=22;a++)
for(b=1;b<=22;b++){
if(a!=b)
for(c=1;c<=22;c++){
if(a!=c && b!=c)
for(d=1;d<=22;d++){
if(a!=d && b!=d && c!=d)
for(e=1;e<=22;e++)
if(a!=e && b!=e && c!=e && d!=e)
for(f=1;f<=22;f++){
if(a!=f && b!=f && c!=f && d!=f && e!=f)
for(g=1;g<=22;g++){
if(a!=g && b!=g && c!=g && d!=g && e!=g && f!=g)
if(a+2*b+3*c+4*d+5*e+6*f+7*g==x)
printf("A=%d\nB=%d\nC=%d\nD=%d\nE=%d\nF=%d\nG=%d\n",a,b,c,d,e,f,g);
}
}
}
}
}
getch();
return 0;
}