杭电1042——N!(大整数运算)

来源:互联网 发布:尔雅网络视频课 编辑:程序博客网 时间:2024/05/04 16:42
Problem Description
Given an integer N(0 ≤ N ≤ 10000), your task is to calculateN!
Input
One N in one line, process to the end of file.
Output
For each N, output N! in one line.
Sample Input
1
2
3
Sample Output
1
2
6

#include<stdio.h>

#include<string.h>

#define MAX 8000

int array[MAX+5]={0};

int main()

{

      int n,i,j;

      

      // 读入N并初始话数组    

      while(scanf ( "%d" , &n)!=EOF)

           

             memset(array,0,sizeof(array));

             array[0] =1;

             //将阶乘存到数组中

             for ( i=2 ; i<=n; i++)

             {

                    int c=0;

                    for ( j=0; j<MAX; j++)

                    {

                           int s=array[j]*i+c;

                           array[j]=s000;

                           c=s/100000;

                    }

                                 

             //打印数组

             for ( j=MAX-1; j>=0; j--)

                    if (array[j])

                           break;

             printf("%d",array[j]);

             for ( i=j-1; i>=0; i--)

                    printf("d",array[i]);

             printf("\n");

      }

      return 0;

}

0 0
原创粉丝点击