zoukankan      html  css  js  c++  java
  • 简单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;
    }

  • 相关阅读:
    linux源码阅读笔记 asm函数
    linux源码阅读笔记 #define 语句的妙用
    对于python的内存管理的好文章
    #define x do{......} while(0)的用处
    reverse list
    判断数组是否存在重复元素
    找出数组中出现奇数次的元素
    找出数组中唯一的重复元素
    两个有序数组中的交集
    Java Socket(3): NIO
  • 原文地址:https://www.cnblogs.com/kongkaikai/p/3014461.html
Copyright © 2011-2022 走看看