zoukankan      html  css  js  c++  java
  • HDoj-1042 大数阶乘

    N!
    Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 53785    Accepted Submission(s): 15217

    Problem Description
    Given an integer N(0 ≤ N ≤ 10000), your task is to calculate N!


    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>
    const int maxn=50000;    //数组开到50000就能够满足10000的阶乘不越界 
    int fun[maxn];
    int main()
    {
    	int i,j,n;
    	while(~scanf("%d",&n))
    	{
     
    	   memset(fun,0,sizeof(fun));
    	   fun[0]=1;
    	   for(i=2;i<=n;i++)          //从2的阶乘開始,一直到指定数的阶乘 
    	   {
    		   int c=0;
    	    	for(j=0;j<maxn;j++)  //将所得阶乘数放在fun数组中,低位放在fun[0]中 
    	    	{
    			    int s=fun[j]*i+c;
    		      	fun[j] =s%10;
    		      	c=s/10;
    	        }
           }
           
    	  for(j=maxn-1;j>=0;j--)     //找出该数的最高位,即数组角码最大且不为0的数  
    	           if(fun[j])  break;
    	  for(i=j;i>=0;i--)  
    	          printf("%d",fun[i]);
     	  printf("
    ");
    	}
    	return 0;
    }

  • 相关阅读:
    undo表空间
    SQL*Plus快速入门
    win10用命令net启动服务没权限解决办法
    Oracle表空间管理
    Oracle数据泵(上)
    windows的bat脚本
    Servlet映射细节
    JSP技术(一)
    690. Employee Importance
    BFS和DFS详解以及java实现(转载)
  • 原文地址:https://www.cnblogs.com/zsychanpin/p/7291336.html
Copyright © 2011-2022 走看看