/*
* Copyright (c) 2011, 烟台大学计算机学院
* All rights reserved.
* 作 者:王静
* 完成日期:2012 年11 月 16日
* 版 本 号:v1.0
* 输入描述:三位数
* 问题描述:无
* 程序输出:输出满足条件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,sum;
for(n=100;n<1000;++n){
a=n/100;
b=n/10%10;
c=n%10;
sum=fac(a)+fac(b)+fac(c);
if(sum==n){
cout<<sum<<"为特殊三位数"<<endl;
}
}
return 0;
}
long fac(int n)
{
int add=1;
if(n==0||n==1)
add=1;
else
{
for(;n>1;){
add=n*(n-1)*add;
n=n-2;
}
}
return add;
}
运行结果:
(贴图)
心得体会: