问题及代码:
#include <iostream>
using namespace std;
int main()
{
long fac(int n);
int n,a,b,c;
for (n=100; n<=999; ++n)
{
a=n/100;
b=n/10-a*10;
c=n-a*100-b*10;
if(fac(a)+fac(b)+fac(c)==n)
cout<<n<<"="<<a<<"!+"<<b<<"!+"<<c<<"!"<<endl;
}
return 0;
}
long fac(int n)
{
int h1=1,i;
for(i=1; i<=n; i++)
{
h1*=i;
}
return h1;
}
运行结果:
学习心得:
很是惶恐…为什么只有一个数>_<
fac()弄得也是头大,之前想得非常复杂,感谢王姓大神指点~