已知abc+cba=1333,其中a,b,c均为一位数。编程求出满足条件的a,b,c的所有组合。

2024-12-15 21:10:46
推荐回答(5个)
回答1:

这种题重点不在写代码,而在于算法,完全是数学题。
因为abc + cba = 101(a+c) + 20b=1333
很明显,1333中个位数的3必然来自101(a+c),所以a+c要么等于3,要么是13.
如a+c为3,那么20b=1030,b不是一位数,不成立。
如a+c为13,那么20b=1030-1010=20,所以b=1
所以组合很简单了, a+c=13,同时b=1就行。这样再枚举,效率高多了。

回答2:

#include
#include
main()
{
int a,b,c;
for(a=3;a<10;a++)
for(b=0;b<10;b++)
for(c=3;c<10;c++)
if(a*100+b*10+c+c*100+b*10+a==1333)
printf("%d,%d,%d\n",a,b,c);//这一句出问题了 & 是取地址的意思
system("pause");
return 0;
}

回答3:

因为printf("%d,%d,%d\n",&a,&b,&c);
&a,&b,&c是打印他们的地址
printf("%d,%d,%d\n",a,b,c);就可以了
btw:为什么a,b初始化为1,b初始化为0?

回答4:

int a,b,c,i,j,k;
for(i=3;i<10;i++)
{
a=i;
for(j=0;j<10;j++)
{
b=j;
for(k=3;k<10;k++)
{
c=k;
if(101*a+20*b+101*c==1333)
printf("%d%d%d\n",a,b,c);
}
}
}
system("pause");
return 0;

回答5:

把输出语句中的&去掉