#include
#include
#include
int Magic(int m);
int Tput( int a, int b, int c );
main()
{
int m; //观众求出的五个数的和
int M; //魔术师算出的三位数
scanf("%d",&m);
M=Magic(m);
if(M==99) //循环过后,所有三位数都不符合
printf("The sum you calculated is wrong!\n");
else
printf("The number is %d\n",M);
system("pause");
}
//函数功能:输出观众心里的三位数
int Magic(int m)
{
int a, b, c; //分别储存循环中三位数的百十个位
int i ; //循环变量
int s ; //储存循环中计算的和
//循环遍历每一个三位数
for(i=999;i>99;i--)
{
//分离每个三位数
a=i/100;
b=i%100/10;
c=i%10;
s=Tput(a,c,b)+Tput(b,a,c)+Tput(b,c,a)+Tput(c,a,b)+Tput(c,b,a);
if(s==m)
break;
}
return i;
}
//函数功能:输入百十个位,输出一个三位数
int Tput( int a, int b, int c )
{
return a*100+b*10+c;
}
#include
int GuessNumber(int sum,int guess);
int DealNumber(int x);
void DisPlay(int i);
int main()
{
int sum, guess;
int i = 99, find = 0;
printf("Please consider three-digit number,and tell the sum of these five numbers\n");
scanf("%d", &sum);
do
{
i++;
guess = DealNumber(i);
find=GuessNumber(sum, guess);
//printf("第%d次,sum=%d,guess=%d\n", i-99, sum, guess);
} while (i < 1000 && find==0);//这两个判断条件必须同时满足
return 0;
}
int GuessNumber(int sum, int guess)
{
if (sum == guess)
{
return 1;
}
else
{
return 0;
}
}
int DealNumber(int x)
{
int a, b, c;
a = x / 100;
b = x % 100 / 10;
c = x % 10;
x = (a * 100 + c * 10 + b) + (b * 100 + a * 10 + c) + (b * 100 + c * 10 + a) + (c * 100 + a * 10 + b) + (c * 100 + b * 10 + a);
return x;
}
void DisPlay(int i)
{
if (i >= 1000)
{
printf("你算错了!\n");
}
else
{
printf("你想的是:%d\n", i);
}
}
467845467
随便算了一下 ,443代入进去算得的和是1972埃。。你确定题目没问题?