慕课第6周在线第2题 计算阶乘的和v2.0

计算阶乘的和v2.0(4分)

题目内容:

假设有这样一个三位数m,其百位、十位和个位数字分别是a、b、c,如果m= a!+b!+c!,则这个三位数就称为三位阶乘和数(约定0!=1)。请编程计算并输出所有的三位阶乘和数。

函数原型: long Fact(int n);

函数功能:计算n的阶乘

 

输入格式:

输出格式:"%d\n"

为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。

时间限制:500ms内存限制:32000kb

 

#include <stdio.h>
long Fact(int n);
int main()
{
    int a, b, c, m, n, sum1, sum2, sum3;    //m代表每一位三位数;a,b,c储存三位数的每一位;n作为每个三位数的每一位数计算阶乘时的中间量;sum1,sum2,sum3分别储存每一位数的阶乘
    for (m=100; m <= 999; m++)
    {
        a=m/100;
        b=m%100/10;
        c=m%10;
        n=a;    //将a的值赋给n,这样计算n的阶乘就等于计算a的阶乘。下同
        sum1=Fact(n);
        n=b;
        sum2=Fact(n);
        n=c;
        sum3=Fact(n);
        if (m == sum1+sum2+sum3)
        {
            printf("%d\n", m);
        }
    }
    return 0;
}

//函数:计算n的阶乘
long Fact(int n)
{
    int multi=1;
    while (n >= 1)
    {
        multi*=n;    //到循环结束时,multi=n*(n-1)*(n-2)*...*1
        n--;
    }
    return multi;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值