题目描述
已知xyz+yzz=n,其中n是一个正整数,x、y、z都是数字(0-9),编写一个程序求出x、y、z分别代表什么数字。如果无解,则输出“No Answer”
注意:xyz和yzz表示一个三位数,而不是表示x*y*z和y*z*z。
输入输出:
输入一个正整数n。
输出一行,包含x、y、z的值,每个数值占4列。
思路:
典型的循环题目,穷举法所有结果一一判断,设置标志f,判断是否有解。
注意:
百位和十位应该从1开始循环穷举,如果为0就不是三位数了。
源代码:
#include<stdio.h>
int main()
{
int x,y,z;//百十个位
int n;
int f=0;//标志位
scanf("%d",&n);
for(x=1;x<=9;x++)//百位从1开始到9
for(y=1;y<=9;y++) //十位从1开始到9
for(z=0;z<=9;z++)//个位0~9
{//穷举法所有的组合
if(x*100+y*10+z+y*100+z*10+z==n)//找到符合的情况
{
printf("%4d%4d%4d\n",x,y,z);//输出x,y,z
f=1;//改变f,表示有解
}
}
if(f==0)
printf("No Answer\n");
return 0;
}
代码运行:
532
3 2 1
--------------------------------
Process exited after 2.692 seconds with return value 0
请按任意键继续. . .