1. 程式人生 > >3000階乘_大數相乘

3000階乘_大數相乘

#include   <stdio.h>

#include   <conio.h>



#define   STRMAX   2000

#define   P   100000

#define   N   3000

int   main()

{

long   t[STRMAX]={0},a,b,c,g=0,x,e,p=P;

t[STRMAX-1]=1;

for   (e=1;e <=N;e++)

for(x=STRMAX-1;x>=0;c=t[x],c*=e,a=c/p,b=c%p,t[x]=b+g,g=a,x--);

while(t[++x]==0);

printf( "%ld ",t[x]);

while(++x <STRMAX)

printf( "%.5ld ",t[x]);

getch();return   0;

}

相關推薦

3000_大數相乘

#include <stdio.h> #include <conio.h> #define STRMAX 2000 #define P 100000 #define N 3000 int main()

JSK-217 大數

階乘 n的階乘定義為n!=123*……*n 如3!=6 n!通常最後會有很多0,如5!=120 最後有一個0,現在統計n!去除末尾的0後,最後k位是多少 輸入格式: 第一行包括兩個數n,k 輸出格式: 如果n!不止k位,則輸出最後k位,如果不足k位,

poj 2731 求10000以內n的大數問題)

2731:求10000以內n的階乘 檢視提交統計提示提問 總時間限制: 3000ms 記憶體限制: 655360kB 描述 求10000以內n的階乘。 輸入 只有一行輸入,整數n(n<

NYOJ 28.大數大數問題)

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

大數or相乘

大數相乘或者階乘不能用傳統乘號直接來原因是乘出來數太大了,計算機記憶體受不了,比如12!為億級,100!有97位;程式設計界處理這類大數問題一般這麼處理: 如果現在要求:2746512,那麼乘的過程是: 對於個位:312=36,那麼可以斷定27465*12的個位數一定是6,所以我們把個

斯特林(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

2017/7/31-zznu-oj-問題 B: N! 普拉斯 -【求大數-ll存不下-然後取尾零的個數輸出-暴力模擬】

討論 def ems long size 字符串 problems turn dmi 問題 B: N! 普拉斯 時間限制: 1 Sec 內存限制: 128 MB提交: 114 解決: 35[提交] [狀態] [討論版] [命題人:admin] 題目描述 在處理階乘時也

c/c++如何解決PC蛋蛋源碼下載 大數存儲問題(100的

stdio.h 語言 例子 字符 使用字符串 ++ c++ 如何 fine PC蛋蛋源碼下載 聯系方式:QQ:2747044651 網址http://zhengtuwl.com 首先在編程中會遇到一些很大的數,由於已經給定的數據類型存儲範圍有限,所以我們應該掌握,如何處理這

codevs 1488 GangGang的煩惱 大數

codevs 1488 GangGang的煩惱 大數階乘 傳送門:http://codevs.cn/problem/1488/ 使用大數階乘的模版即能A該題,原理不難理解,就是用陣列來儲存階乘的結果,主要就是按位進行處理,包括進位的處理

大數——詳解講解

題目詳情:NYOJ-大數階乘       階乘相信大家都不陌生,簡單一點的迴圈遞迴都可以解決。              在這裡將要講解的

連結串列實現大數

連結串列實現大數階乘 題目 大數運算——計算n的階乘 (n≥20)。 基本要求 (1)資料的表示和儲存: ①累積運算的中間結果和最終的計算結果的資料型別要求是整型——這是問題本身的要求。 ②試設計合適的儲存結構,要求每個元素或結點最多儲存資料的3位數值。 (2)資料的操作及其實現: 基於設計的儲

鏈表實現大數

元素 大數運算 pre let ++ 結果 get delet value 鏈表實現大數階乘 題目 大數運算——計算n的階乘 (n≥20)。 基本要求 (1)數據的表示和存儲: ①累積運算的中間結果和最終的計算結果的數據類型要求是整型——這是問題本身的要求。 ②試設計合適的

hdu1042 N!(大數)

N! Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 94583   &

ACM 大數運算 【計算1000以內的

題目: 輸入不超過1000的正整數N,輸出N!=1x2x3x4……xN的精確結果 樣例輸入:30 樣例輸出:265252859812191058636308480000000 思路:由於數值過大,無法用任何型別的將其儲存,故使用乘法的基本算式求解。

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

java大數

//JAVA 大數階乘 import java.math.*; import java.util.Scanner; public class LargeNumber{ public sta

PTA_基礎程式設計題目集_6-10 計算升級版 (20 分)“大數

題目地址 題目分析: 1.預估1000!的位數~~進行放大估計~~1000^900&100^100即是3*900+2*100+o<3000位; 2.這裡顯然需要利用陣列來儲存數字並進行運算,讓陣列成員每個儲存3位數字(題目條件已告知引數小於1000),我們構

求N個數的相乘素因子個數總和

#include <bits/stdc++.h> using namespace std; bool vis[10000004]; vector<long long>prim; long long maxprim[10000004];//最大素因子 long long num

大數(藍橋杯)

/* 1000!的階乘有多少位數字?不知道,總之,十個long long也是不夠用的,所以考慮用陣列來模擬乘法運算,那麼陣列開多長合適呢?其實博主最開始開的2000,結果。。。提交上去只過了80%資料,顯然,2000位不夠,最後開了個3000的陣列直接AC了。那麼下面來說說模擬大數運算吧!!