Advertisement

PTA厦大慕课计算阶乘与和数

阅读量:

计算阶乘和数的问题。假设存在一个三位数m,其百位、十位以及个位上的数字分别为a、b、c,若满足m等于a的阶乘加上b的阶乘再加上c的阶乘,则该三位数被称为三位阶乘和数(规定0的阶乘为1)。
编写用于计算n的阶乘的函数:long fact(int n);该函数的功能是返回n的阶乘结果。
在主程序中输入数值n,调用fact函数进行计算,并据此判断该数值是否属于阶乘和数。
输入格式要求:
输入一个整数n,且该整数位于100到999之间。
输出格式要求:
输出判断结果,表明该数值是否为阶乘和数。
输入示例:
300

输出示例:
不是阶乘和数

复制代码
    #include<stdio.h>
    long fact(int n)
    {
      if(n==1) return 1L;
      return n*fact(n-1);
    }
    int main()
    {
      int x,a,b,c;
      scanf("%d",&x);
      a=x/100; b=x/10%10; c=x%10;
      if(x==fact(a)+fact(b)+fact(c))
    printf("是阶乘和数");
      else  printf("不是阶乘和数");
      return 0

全部评论 (0)

还没有任何评论哟~