必威体育Betway必威体育官网
当前位置:首页 > IT技术

清华大学---N的阶乘(大数运算)

时间:2019-10-01 12:11:08来源:IT技术作者:seo实验室小编阅读:50次「手机版」
 

n的阶乘

题目描述

输入一个正整数N,输出N的阶乘。

输入描述:

正整数N(0<=N<=1000)

输出描述:

输入可能包括多组数据,对于每一组输入数据,输出N的阶乘

示例1

输入

4

5

15

输出

24

120

1307674368000


分析:大数运算是一个老生畅谈,常谈常新的话题。

关于大数阶乘,自以为以下这篇博文讲得不错

https://blog.csdn.net/lisp1995/article/details/52403507

以下是我这题通过的代码

#include <stdio.h>
int main(){

    int a[20001];//储存每一位所得到的数
    int temp,digit,n,i,j=0;
    while(scanf("%d",&n)!=EOF){
        a[0]=1;//从1开始乘
        digit=1;//位数从第一位开始
        for(i=2;i<=n;i++){
            int num=0;
            for(j=0;j<digit;j++){   //从低位到高位
                temp=a[j]*i+num;//将一个数的每一位利用数组进行存储
                a[j]=temp%10;//将一个数的每一位利用数组进行存储
                num=temp/10;
            }
            while(num){ //判断退出循环后,num的值是否为0
                a[digit]=num%10;//继续存储
                num=num/10;
                digit++;
            }
        }
        for(i=digit-1;i>=0;i--)
            printf("%d",a[i]);
        printf("\n");
    }

    return 0;
}

相关阅读

氪信CEO朱明杰:现阶段AI 的本质是用大数据解决明确问题

(吴绛枫 极客公园)氪信科技创始人&CEO朱明杰,将自己定义为「科创家」,是「最早在学术界,奔着搞科研去,接着到了工业界,最后加入创业大军

三大数学危机——人类思想的发展史

第一次数学危机——无理数的发现。以前人们公认所有的数都可以表示成2个整数的比值。然后有了毕达哥拉斯定理,取最简单的情形,2个直

Java怎样求解n的阶乘 n!(详解)

n!是表示为自然数n的阶乘,即:n!=1 × 2 × 3…(n-2) × (n-1) × n。如: 9!=9×8×7×6×5×4×3×2×1。阶乘也可以递归方式定义:0!=

品牌推广策略:如何通过大数据制定推广规划?需要从哪些方

如今,当许多公司正在进行网络营销时,大都会觉得有点困难。 选择哪个平台都不给力,效果总是上不来,浪费了推广成本,网络推广没效果的原

网易云发力大数据,网易猛犸大数据平台成业界标杆

近日,国家工业信息安全发展研究中心公布了&ldquo;2017大数据优秀产品和应用解决方案案例&rdquo;的名单,网易云旗下大数据产品&mdash

分享到:

栏目导航

推荐阅读

热门阅读