zoukankan      html  css  js  c++  java
  • 高精度算法

    链接:https://www.nowcoder.com/acm/contest/75/E
    来源:牛客网

    题目描述

    给定一个整数N(0≤N≤10000),求取N的阶乘

    输入描述:

    多个测试数据,每个测试数据输入一个数N

    输出描述:

    每组用一行输出N的阶乘
    示例1

    输入

    1
    2
    3

    输出

    1
    2
    6
    #include<stdio.h>
    #include<string.h>
    int a[50000];
     
    int main()
    {
        int n;
        while( ~scanf("%d",&n)){
            memset( a, 0, sizeof(a));
            a[0]=1; a[1]=1;
            for(int i=1;i<=n;i++){
                for(int j=1;j<=a[0];j++)
                    a[j]=a[j]*i;
                int j;
                for(j=1;j<=a[0];j++){
                    a[j+1]=a[j+1]+a[j]/10;
                    a[j]=a[j]%10;
                }
                while(a[j]>0){
                    a[j+1]+=a[j]/10;
                    a[j] %=10;
                    j++;
                    a[0]++;
                }
            }
            for(int i=a[0];i>0;i--)
                printf("%d",a[i]);
            printf("
    ");
        }
     
        return 0;
    }
    

      用数组存每一位,进位前一位加即可。

  • 相关阅读:
    HTML学习基础(一)
    初识C#
    SQL小知识
    jQuery(四)
    jQuery(三)
    认识jQuery(二)
    认识Jquery
    初识Javascript
    初识HTML
    博客,你好!
  • 原文地址:https://www.cnblogs.com/ZQUACM-875180305/p/8503321.html
Copyright © 2011-2022 走看看