问题及代码:
/*
*Copyright(c)2014,烟台大学计算机学院
*Allrights reserved.
*文件名称:MADE40.cpp
*作 者:孙化龙
*完成日期:2014年11月6日
*版 本 号:v1.0
*
*问题描述:输出满足条件n=a!+b!+c!的所有三位数n,其中,a、b、c分别是n的百、十、个位数
*输入描述:无
*输出描述:满足条件n=a!+b!+c!的所有三位数n,其中,a、b、c分别是n的百、十、个位数
*/
#include <iostream>
using namespace std;
long fac(int n);
int main()
{
int a,b,c,n;
for(n=100;n<=999;n++)
{
a=n/100;
b=(n-a*100)/10;
c=n%10;
if(n==fac(a)+fac(b)+fac(c))
cout<<n<<" ";
}
}
long fac(int n) //用于求n的阶乘
{
int a=1;
for(;n!=0;n--)
{
a=a*n;
}
return a;
}
运行结果: