问题及代码:
/*
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:李盈盈
* 完成日期:2014年 11 月 10 日
* 版 本 号:v1.0
*
*问题描述:请输出满足条件n=a!+b!+c!的所有三位数n,其中,a、b、c分别是n的百、十、个位数。要求用自定义函数实现求阶乘。
*程序输出:无
*程序输出:n=a!+b!+c!的所有三位数n
*/
#include <iostream>
using namespace std;
long fac(int);
int main ( )
{
int n,a,b,c,sum;
for (a=1; a<=9; ++a)
for (b=0; b<=9; ++b)
for (c=0; c<=9; ++c)
{
n=a*100+b*10+c;
sum=fac(a)+fac(b)+fac(c);
if (sum==n)
cout<<"满足条件n=a!+b!+c!的所有三位数n有:"<<n<<" ";
}
return 0;
}
long fac(int n) //用于求n的阶乘
{
int i, j=1;
for(i=1; i<=n; ++i)
j=j*i;
return j;
}
运行结果:
学习心得:
原来如此!!!