• 简单n! (本来只是一个·简单的地推,只是大数问题有点纠结·,本人用数组简单模拟了一下)


    简单n!

    Time Limit: 1000MS Memory limit: 65536K

    题目描述

    给定一个数n(0 <= n <= 150), 求0到n中所有数的阶乘。

    输入

    题目有多组数据,处理到文件结尾。输入一个数n。

    输出

    输出阶乘,形式如:4! = 24.每组数据输出后跟一个空行。

    示例输入

    1
    4
    

    示例输出

    0! = 1
    1! = 1
    
    0! = 1
    1! = 1
    2! = 2
    3! = 6
    4! = 24
    

    #include<stdio.h>
    int main()
    {
        int i,j,n,h,s[1001];
        while(~scanf("%d",&n))
        {
            printf("0! = 1\n");
            for(i=0; i<1001; i++)
                s[i]=0;
            s[1]=1;
            h=1;
            for(i=1; i<=n; i++)
            {
                for(j=1; j<=h; j++)
                    s[j]*=i;
                for(j=1; j<=h; j++)
                    if(s[j]>9)
                    {
                        s[j+1]+=s[j]/10;
                        s[j]=s[j]%10;
                    }
                while(s[j]>9)
                {
                    s[j+1]+=s[j]/10;
                    s[j]=s[j]%10;
                    j++;
                }
                for(;s[j]==0;j--);
                h=j;
                printf("%d! = ",i);
                for(; j>0; j--)
                    printf("%d",s[j]);
                printf("\n");
            }
            printf("\n");
        }
        return 0;
    }

  • 相关阅读:
    【区间DP&&记忆化搜索】乘法游戏
    洛谷P1608路径统计
    2021省选游记
    涂色计划P4170
    01迷宫及路径记录(DFS&&BFS)
    [YBTOJ递推算法强化训练4]序列个数
    C++关于string 的优先队列以及重载运算符
    浅谈C++STL容器
    集合的划分
    图的表示
  • 原文地址:https://www.cnblogs.com/kongkaikai/p/3014461.html
Copyright © 2020-2023  润新知