1. 程式人生 > >杭電acm:大數階乘(附原始碼)

杭電acm:大數階乘(附原始碼)

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>
int main()
{
    int tmp,n,j;
    int a[35661];//10000的階乘位數為35660
    int d;
    int temp,i;   
    while(scanf("%d",&n)!=EOF){
    a[0]=1;d=1;
    for(i=2; i<=n; i++)
    {
        for(tmp=0,j=1; j<=d; ++j)//大於十進位
        {
            temp=a[j-1]*i+tmp;
            a[j-1]=temp%10;
            tmp=temp/10;
        }
        while(tmp)
        {
            a[++d-1]=tmp%10;
            tmp/=10;
        }
    }
   
    for(int k=d; k>=1; --k)//去掉多餘的0
        printf("%d",a[k-1]);
    printf("\n");
 }
    return 0;
}


相關推薦

acm大數原始碼

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

acm 1230 火星a+b進制

進制數 a+b 第一個 進行 () 地球 iss class font 火星A+B Time Limit: 2000/1000 MS (Java/

ACM hdu 2079 選課時間 模板

Problem Description 又到了選課的時間了,xhd看著選課表發呆,為了想讓下一學期好過點,他想知道學n個學分共有多少組合。你來幫幫他吧。(xhd認為一樣學分的課沒區別) Input輸入資料的第一行是一個數據T,表示有T組資料。每組資料的第一行是兩個整數n(1 <= n <

acm 1230 火星a+b進位制

                          

大數JAVA

小編初學Java,先解決一下大數問題,還請多多關注^-^ 描述 我們都知道如何計算一個數的階乘,可是,如果這個數很大呢,我們該如何去計算它並輸出它? 輸入 輸入一個整數m(0<m<=5000) 輸出 輸出m的階乘,並在輸出結束之後輸入一個換行符

HDU 1261 字串數大數 除法 組合 java

生平第一次用java A題 這個題目明顯的一個全排列除以相同元素的排列數 import java.util.*; import java.math.*; public class Main { public static void main(St

NYOJ 28 大數JAVA

題目:大數階乘時間限制:3000 ms  |  記憶體限制:65535 KB描述我們都知道如何計算一個數的階乘,可是,如果這個數很大呢,我們該如何去計算它並輸出它?輸入輸入一個整數m(0<m<

NYOJ 28.大數大數問題

/*描述 我們都知道如何計算一個數的階乘,可是,如果這個數很大呢,我們該如何去計算它並輸出它? 輸入 輸入一個整數m(0<m<=5000) 輸出 輸出m的階乘,並在輸出結束之後輸入一個換行符 樣例輸入 50 樣例輸出30414093201713378043612

題目28大數

題目連結: 描述 我們都知道如何計算一個數的階乘,可是,如果這個數很大呢,我們該如何去計算它並輸出它? 輸入 輸入一個整數m(0<m≤5000) 輸出 輸出每組測試資料中揹包內的物品的價值和,每次輸出佔一行。 樣例輸入 50 樣例

2018多校第一場1011hdu 6308

題解:這題主要會超時,不能用string。可以使用sscanf提取字串。 #include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<queue

2018多校第一場1003hdu 6300

題解:畫個圖發現只要按橫座標排序,每次取三個點就永遠不會相交 #include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<queue> #

JAVA語法——n的高級

sys integer mina sca -i val 輸入一個正整數n system nal 題目描述 輸入一個正整數N,輸出N的階乘。 輸入描述: 正整數N(0<=N<=1000) 輸出描述: 輸入可能包括多組數據,對於每一組輸入數據,輸出N的階乘

C語言實驗——求迴圈結構 (sdut oj)

C語言實驗——求階乘(迴圈結構) Time Limit: 3000MS Memory Limit: 65536KB Problem Description 從鍵盤輸入任意一個大於等於0

js中實現多種方法以及

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en"> <h

遞迴實現1到100的和、10的Java語言

遞迴需慎用。 package demo; public class Test { public static void main(String[] args) { Sys

n的C語言

非遞迴實現: #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> int strlen(char* str) { if (*str == '\0') return 0;

C語言實驗——求迴圈結構

Problem Description 從鍵盤輸入任意一個大於等於0的整數n,然後計算n的階乘,並把它輸出。 Input 輸入任意一個大於等於0的整數n。 Output 輸出n! Example Input 3 Example Output 6 #inclu

“計算機學院大學生程式設計競賽2015’11”題解【1-3】

1001搬磚 Problem Description 小明現在是人見人愛,花見花開的高富帥,整天沉浸在美女環繞的笙歌妙舞當中。但是人們有所不知,春風得意的小明也曾有著一段艱苦的奮鬥史。 那時的小明還沒剪去長髮,沒有信用卡沒有她,沒有24小時熱水的家,可當初

用遞迴方法求n的C語言

用遞迴方法求n! #include<stdio.h> int main() { int fac(int n); int n; int y; printf("

Problem H: C語言實驗——求迴圈結構

就算我們站在群山之顛,也別忘記雄鷹依舊能從我們頭頂飛過。驕傲是比用JAVA進行底層開發更可笑的東西。 Description 從鍵盤輸入任意一個大於等於0的整數n,然後計算n的階乘,並把它輸出。 Input 輸入任意一個大於等於0的整數n。 Output 輸出n! Sam