第11周项目四 特殊三位数

问题描述:

 请输出满足条件n=a!+b!+c!的所有三位数n,其中,a、b、c分别是n的百、十、个位数。要求用自定义函数实现求阶乘。 

代码:

/*
 *copyright (c) 2014,烟台大学计算机学院
 *all rights reserved.
 *文 件 名 : 特殊三位数.cpp
 *作    者 :张   鹏
 *完成日期 :2014年11月07号
 *版 本 号 :v1.1
 *
 *问题描述 :请输出满足条件n=a!+b!+c!的所有三位数n,其中,a、b、c分别是n的百、十、个位数。
 *输入描述 :无,系统循环从100到999。
 *程序输出 :输出一个特殊三位数。
 */
#include <iostream>                          //预处理指令。.
using namespace std;                         //使用C++的命名空间 std。
long fac(int );                              //声明自定义函数,用于求n的阶乘。
int main()
{
    int n;                                   //声明一个变量n位整型
    cout<<"特殊三位数是:";                  //输出汉字,使得界面更友好。
    for (n=100; n<=1000; n++)
    {
        if (n==fac(n/100)+fac((n/10)%10)+fac(n%10))//判断是否是特殊三位数。
            cout<<n<<'\t';
    }
    return 0;
}
long fac(int i)                               //自定义函数fac开始。
{
    int sum=1;                                //定义一个变量sum位整型并赋初值为1,sum代办阶乘。
    if (i==0||i==1)                           //当数字为1或0的时候。
        ;
    else	while (i!=1)                  //i不为1开始循环。
        {
            sum*=i;                           //求阶乘。
            i--;
        }
    return sum;                               //返回阶乘的值。
}

运行结果:

第11周项目四 特殊三位数_第1张图片

学习心得:

  虽然是自定义函数,我还是先在编了一个求n!的程序然后再嵌套进要求的程序里。ps(145很酷嘛,不过我们141也很赞)

你可能感兴趣的:(编程,C++,namespace,计算机)