/*
* Copyright (c) 2014,烟台大学计算机学院
* All right reserved.
*文件名:eleven week 4.app
* 作者:柴银平
* 完成时间:2014年11月10日
* 版本号:v1.0
*
* 问题描述:输出特殊三位数,输出可以满足n=a!+b!+c!的三位数n
*程序输入:
*程序输出:输出n
*/
#include <iostream>
using namespace std;
long fac(int);
int main()
{
int a,b,c,n;
long x,y,z;
for (n=100; n<=999; ++n)
for (a=1; a<=9; ++a)
for (b=0; b<=9; ++b)
for (c=0; c<=9; ++c)
{
x=fac(a);
y=fac(b);
z=fac(c);
if (n==x+y+z&&n==a*100+b*10+c)
cout<<n<<"="<<a<<"!+"<<b<<"!+"<<c<<"!"<<endl;
}
cout<<endl;
return 0;
}
long fac(int n)
{
long f;
if (n<0)
{
cout<<"n<0,data error!"<<endl;
f=-1;
}
else if (n==0||n==1)
f=1;
else
f=fac(n-1)*n;
return f;
}