nyoj 28大數階乘
- 輸入
- 輸入一個整數m(0<m<=5000)
- 輸出
- 輸出m的階乘,並在輸出結束之後輸入一個換行符
- 樣例輸入
-
50
- 樣例輸出
-
30414093201713378043612608166064768844377641568960512000000000000
模擬乘法運算
核心程式碼:
每一位的計算結果 =a[x] * 乘數 + 進位
a[x] = 結果%10
進位 = 結果 / 10
#include<stdio.h> int a[100000]= {0}; int main() { int n,i,j,k,num,m; while(~scanf("%d",&n)) { int num=1;//num統計位數,位數最小為1,將num初始化為1 a[0]=1; for(i=1; i<=n; i++) { k=0; for(j=0; j<num; j++) { m=a[j]*i+k; //從最低位開始乘的結果 a[j]=m%10; //該位上的值 k=m/10; //向前一位進數 } while(k) //如果k不等於0,這說明最高位也需要進位,位數num增加 { a[num++]=k%10; k/=10; } } for(i=num-1; i>=0; i--) printf("%d",a[i]); printf("\n"); } return 0; }
相關推薦
NYOJ 28 大數階乘(JAVA)
題目:大數階乘時間限制:3000 ms | 記憶體限制:65535 KB描述我們都知道如何計算一個數的階乘,可是,如果這個數很大呢,我們該如何去計算它並輸出它?輸入輸入一個整數m(0<m<
nyoj 28大數階乘
描述 我們都知道如何計算一個數的階乘,可是,如果這個數很大呢,我們該如何去計算它並輸出它? 輸入 輸入一個整數m(0<m<=5000) 輸出 輸出m的階乘,並在輸出結束之後輸入一個換
NYOJ:28-大數階乘
時間限制:3000 ms | 記憶體限制:65535 KB 難度:3 描述 我們都知道如何計算一個數的階乘,可是,如果這個數很大呢,我們該如何去計算它並輸出它? 輸入 輸入一個整數m(0< m<=5000) 輸出 輸出m的階乘,並在
NYOJ 28.大數階乘(大數問題)
/*描述 我們都知道如何計算一個數的階乘,可是,如果這個數很大呢,我們該如何去計算它並輸出它? 輸入 輸入一個整數m(0<m<=5000) 輸出 輸出m的階乘,並在輸出結束之後輸入一個換行符 樣例輸入 50 樣例輸出30414093201713378043612
NYOJ.28.大數階乘
28.大數階乘 時間限制:3000 ms | 記憶體限制:65535 KB 難度:3 描述 我們都知道如何計算一個數的階乘,可是,如果這個數很大呢,我們該如何去計算它並輸出它? 輸入 輸入一個整數m(0<m<=5000) 輸出 輸出m的階乘,並在輸出結束之後輸入
nyoj 28 大數階乘
描述 我們都知道如何計算一個數的階乘,可是,如果這個數很大呢,我們該如何去計算它並輸出它? 輸入輸入一個整數m(0<m<=5000) 輸出輸出m的階乘,並在輸出結束之後輸入一個換行符 樣例輸入 50
NYOJ,28,大數階乘
大數階乘 時間限制:3000 ms | 記憶體限制:65535 KB 難度:3 描述 我們都知道如何計算一個數的階乘,可是,如果這個數很大呢,我們該如何去計算它並輸出它? 輸入 輸入一個整數m
NYOJ 28.大數階乘
/* 大數階乘 輸入 輸入一個整數m(0<m<=5000) 輸出 輸出m的階乘,並在輸出結束之後輸入一個換行符 樣例輸入 50樣例輸出 30414093201713378043612608166064768844377641568960512000000000
南陽理工題目28大數階乘
大數階乘 時間限制:3000 ms | 記憶體限制:65535 KB 難度:3 描述我們都知道如何計算一個數的階乘,可是,如果這個數很大呢,我們該如何去計算它並輸出它? 輸入輸入一
nyoj 大數階乘 28
#include<stdio.h> #include<string.h> int a[3270];//其實我先開的很大,後來通過a[0]的值判斷,然後改的小了,儘量佔得空間少一點 int main() { int n; while(~scanf("%d",&n)
NYOJ---大數階乘---28
大數階乘時間限制:3000 ms | 記憶體限制:65535 KB 難度:3 描述 我們都知道如何計算一個數的階乘,可是,如果這個數很大呢,我們該如何去計算它並輸出它? 輸入 輸入一個整數m(0<m<=5000) 輸出 輸出m的階乘,並在輸出結束之後
nyoj 大數階乘
大數階乘 時間限制:3000 ms | 記憶體限制:65535 KB 難度:3 描述 我們都知道如何計算一個數的階乘,可是,如果這個數很大呢,我們該如何去計算它並輸出
南陽oj 大數階乘 題目28
啊啊啊啊啊啊啊啊啊學的太少了<h2>大數階乘</h2><div class="problem-ins"> 時間限制:<span class="edita
題目28:大數階乘
題目連結: 描述 我們都知道如何計算一個數的階乘,可是,如果這個數很大呢,我們該如何去計算它並輸出它? 輸入 輸入一個整數m(0<m≤5000) 輸出 輸出每組測試資料中揹包內的物品的價值和,每次輸出佔一行。 樣例輸入 50 樣例
斯特林(Stirling)公式 求大數階乘的位數
href put || tdi code const 但是 body https 我們知道整數n的位數的計算方法為:log10(n)+1n!=10^m故n!的位數為 m = log10(n!)+1 lgN!=lg1+lg2+lg3+lg4+lg5+...........
codewars--js--Large Factorials--階乘+大數階乘
ref 階乘 clas python count .cn exp pre n+1 問題描述: In mathematics, the factorial of integer n is written as n!. It is equal to the product of
codevs 1488 GangGang的煩惱 大數階乘
codevs 1488 GangGang的煩惱 大數階乘 傳送門:http://codevs.cn/problem/1488/ 使用大數階乘的模版即能A該題,原理不難理解,就是用陣列來儲存階乘的結果,主要就是按位進行處理,包括進位的處理
大數階乘——詳解講解
題目詳情:NYOJ-大數階乘 階乘相信大家都不陌生,簡單一點的迴圈遞迴都可以解決。 在這裡將要講解的
N! (n的階乘)(大數階乘)
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
大數階乘or相乘
大數相乘或者階乘不能用傳統乘號直接來原因是乘出來數太大了,計算機記憶體受不了,比如12!為億級,100!有97位;程式設計界處理這類大數問題一般這麼處理: 如果現在要求:2746512,那麼乘的過程是: 對於個位:312=36,那麼可以斷定27465*12的個位數一定是6,所以我們把個