编一个程序,要求输出所有满足abc+cba=1333的a,b,c的值,其中的a,b,c
都是一位数字.
main()
{
int a,b,c;
for(a=1;a<=9;a++)
for(b=1;b<=9;b++)
{
if(a==b)continue; /*为什么这里要用一个if语句来判断a=b呢?*/
for(c=1;c<=9;c++)
{
if((a==c)||(b==c))continue; /*还有这里!*/
if((a*100+b*10+c)+(c*100+b*10+a)==1333)
printf("%d%d%d\n",a,b,c);
}
}
getch();
}
上面的程序有点改动;和书上的不太一样了!
下面是我自己编写的,也可以正确输出结果.那么最上面的程序有会么好处呢?
main()
{
int a,b,c;
for(a=1;a<=9;a++)
{
for(b=1;b<=9;b++)
{
for(c=1;c<=9;c++)
{
if(101*a+20*b+101*c==1333)
printf("%d%d%d\n",a,b,c);
}
}
}
getch();
}
谢了!
----------------解决方案--------------------------------------------------------
减少一些不必要的计算
----------------解决方案--------------------------------------------------------
你的意思:不可能a,b,c三个数相等是吗?
----------------解决方案--------------------------------------------------------
如果abc3个数相等的话就意味着1333能被2整除!
----------------解决方案--------------------------------------------------------
明白了
谢谢二楼三楼的朋友了
----------------解决方案--------------------------------------------------------
错了
是二楼四楼的朋友
不好意思啊
----------------解决方案--------------------------------------------------------