今天这道题目呢,又是我们的老朋友“阶乘计算”,不过相较于之前那道阶乘计算而言,这道题目的难度略有提升。

就是先需要对输入的整数N进行一个判断,该整数不超过1000,如果N是非负整数,则函数在一行中必须打印N!得到的值,否则打印“ input”。

阶乘10000_阶乘10是什么意思_1000的阶乘

梳理逻辑

这道题目的逻辑很简单,不过针对函数篇的题目,我们还是按照固有形式来做。

就是进行倒推,根据题目给定的裁判测试程序样例,然后倒推得到逻辑。

但很显然,这道题目既然给定N的范围,就说明N的范围是要考虑在内的。

正如1000的阶乘等于超级大的数,很显然用、long等数据变量类型都无法表示。

所以这道题目优先级最高的方法应该是选择数组

阶乘10是什么意思_阶乘10000_1000的阶乘

很显然,如图所示,在用数组的方法来解决这道题目时,整道题目的逻辑就一下子变得清晰起来,难度也下降了不少,也为我们解决这道题提供了方向。

代码实现

//阶乘计算升级版
#include 
void Print_Factorial ( const int N );
int main()
{
    int N;
    scanf("%d", &N);
    Print_Factorial(N);
    return 0;
}
void Print_Factorial ( const int N ){
    int Store[10000];//用数组的方法
    Store[0] = 1;//数组下标第一个元素应该是从1开始的
    int every = 0;//每一位的结果
    int M = 0;//进位
    int digit = 1;//各个位数
    if(N=0){//N的值要不超过1000,且为非负
        for(int i = 1; i <= N; i++){//从1开始,到N为止
            for(int j = 0; j = 0;i--){
            printf("%d",Store[i]);
        }
    }
    else{
        printf("Invalid input");
    }
}

结果测试

阶乘10是什么意思_阶乘10000_1000的阶乘

1000的阶乘_阶乘10000_阶乘10是什么意思

1000的阶乘_阶乘10是什么意思_阶乘10000

总结

在很多时候,数组真的非常好用,就拿今天这道题目来说,能够解决阶乘的一个超过数据变量范围的问题,数组就很值得称赞了!

———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,永久会员只需109元,全站资源免费下载 点击查看详情
站 长 微 信: nanadh666