/*
* Copyright (c) 2013, 烟台大学计算机学院
* All rights reserved.
* 作 者: 沈远宏
* 完成日期:2013 年11月07日
* 版 本 号:v1.0
* 问题描述:调用函数求特殊三位数,(n=a!+b!+c!)。
* 问题分析:调用fac函数,fac函数求阶乘。
*/
#include <iostream>
using namespace std;
int fac(int);
int main()
{
int m,a,b,c,sum;
for(m=100;m<1000; ++m)//三位数从100到999的循环
{
a=m/100;
b=(m/10)%10;
c=m%10;//如和将一个三位数拆成个十百位单独的数字。
sum=fac(a)+fac(b)+fac(c);
if(sum==m)
{
cout<<m<<"\t";
}
}
return 0;
}
int fac(int n)//定义fac函数求阶乘
{
if(n!=0)
{
int i,x=1;
for(i=1; i<=n; ++i)
{
x=x*i;
}
return x;
}
else
return 0;
}
运行结果:
心得体会:
如何将一个三位数拆成单独的个、十、百、的数字我觉得是一个难点,当时a的表示应该是/,我用成了%,结果就没有结果。仔细,认真,要保持头脑清醒,这三点是做程序必备的三点,for me and for everyone!