问题及代码:
/*
*Copyright(c) 2014 烟台大学计算机学院
*All rights reserved.
*文件名称:test.cpp
*作者:尚 月
*完成日期:2014年 11 月 10 日
*版本号:V1.0
*
*问题描述:输入一个三位数,且满足各个位上的数的阶乘相加是原来的数。
*程序输出:输出满足要求的三位数
*/
#include <iostream>
using namespace std;
int fac(int x)
{
int i,j=1;
for (i=1; i<=x; i++)
j*=i;
return j;
}
int main()
{
int n=100,a,b,c,a1,b1,c1,m;
while (n<=999)
{
a=n/100;
b=n/10-10*a;
c=n%10;
a1=fac(a);
b1=fac(b);
c1=fac(c);
m=a1+b1+c1;
if (n==m)
cout<<"满足n=a!+b!+c!的值有:"<<n<<endl;
n++;
}
return 0;
}
总结:“;”真的太重要了,少了它结果就没法运行啊!!!