計算大數階乘--Java版
本文給出Java語言版的計算大數階乘的程式,本文使用動態陣列的儲存計算過程的中間結果和最終結果。每個short型陣列元素表示4位10進位制數。順便說一下,這是我的第一個Java程式。
import java.util.Scanner; /** * * @author [email protected] */ public class Fac { public Fac() { } public static void Calc(int n) { int RAD=10000; int buffSize=(int)(n * Math.log10((n+1)/2) / Math.log10(RAD)+1); short[] buff = new short[buffSize]; int len=1; buff[0]=1; for (int i=1;i<=n;i++) { int c=0; for (int j=0;j<len;j++) { int prod=(buff[j]*i+c); buff[j]=(short)(prod % RAD); c=prod / RAD; } while (c>0) { buff[len++]= (short)(c % RAD); c=c/RAD; } } System.out.printf("%d!=%d", n, buff[len-1]); for (int i=len-2;i>=0;i--) System.out.printf("%04d",buff[i]); } public static void main(String[] args) { System.out.println("Please input a integer"); Scanner in=new Scanner(System.in); int n=in.nextInt(); Calc(n); } }
相關推薦
計算大數階乘--Java版
本文給出Java語言版的計算大數階乘的程式,本文使用動態陣列的儲存計算過程的中間結果和最終結果。每個short型陣列元素表示4位10進位制數。順便說一下,這是我的第一個Java程式。 import java.util.Scanner; /** * * @auth
計算大數階乘--Fortran版
本文給出一個使用Fortran語言的計算大數階乘的程式,該程式可以計算出1-21萬之間的數的階乘。Fortran表示公式翻譯語言,是最古老的高階語言,主要用途是科學計算,曾經很流行,但現在用的少了,他的大部分市場被C語言取代。在編寫本程式之前,我從未寫過Fortran程
計算大數階乘
#include<stdio.h> #include<string.h> int main (void) { int N,sub,sub_a; int m,i,j,k,p; int res[500],a[500],b[500]; scanf (
大數階乘Java實現
題目 描述 我們都知道如何計算一個數的階乘,可是,如果這個數很大呢,我們該如何去計算它並輸出它? 輸入輸入一個整數m(0<m<=5000) 輸出輸出m的階乘,並在輸出結束之後輸入一個換行符 樣例輸入 50 樣例輸出 30414093201713378
PTA_基礎程式設計題目集_6-10 階乘計算升級版 (20 分)“大數階乘”
題目地址 題目分析: 1.預估1000!的位數~~進行放大估計~~1000^900&100^100即是3*900+2*100+o<3000位; 2.這裡顯然需要利用陣列來儲存數字並進行運算,讓陣列成員每個儲存3位數字(題目條件已告知引數小於1000),我們構
java大數階乘
//JAVA 大數階乘 import java.math.*; import java.util.Scanner; public class LargeNumber{ public sta
大數階乘(JAVA)
小編初學Java,先解決一下大數問題,還請多多關注^-^ 描述 我們都知道如何計算一個數的階乘,可是,如果這個數很大呢,我們該如何去計算它並輸出它? 輸入 輸入一個整數m(0<m<=5000) 輸出 輸出m的階乘,並在輸出結束之後輸入一個換行符
Java利用BigInteger類求大數階乘運算
進行大數運算,用到BigInteger類,首先介紹一下這個類 方法 描述 public BigInteger (String var) 將一個字串變為BigInteger型別的資料 public BigInteger add(BigInteg
java競賽-大數階乘問題
Java計算階乘(n!)需要使用實現使用BigDecimal類,因為用int最多正確算到12!,用long最多正確算到20! 計算機中提供了長整型和雙精度等能儲存較大
Java 大數階乘簡單方法
import java.util.Scanner; public class nc030 { public static void main(String[] args) throws Exception { // TODO Auto-genera
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<
ACM--大數階乘--HDOJ 1042--N!--Java
HDOJ題目地址:傳送門 N! Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 262144/262144 K (Java
計算階乘升級版---pta測試基礎題
4-10 階乘計算升級版 (20分) 本題要求實現一個列印非負整數階乘的函式。 函式介面定義: void Print_Factorial ( const int N ); 其中N是使用者傳入的引數,其值不超過1000。如果N是非負整數,則該函式必須在一行中打印出
java-用陣列實現大數階乘
import java.util.Scanner; class Factorial { void Carry(int[] array, int pos) { int i, carry = 0; for (i = 0; i <= pos; i++) {//
幾種大數階乘演算法效率比較(Java)
完整程式碼: package bigdatamul; import java.math.BigInteger; /** * 大數階乘 * * @Description: TODO(大數階乘) * * @author yzy * @date 201
(當N非常大時)巧用Java函式BigInteger計算N階乘
資料型別 型別名 位長 取值範圍 預設值 布林型 boolean 1 true,false false 位元組型 byte 8
斯特林(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該題,原理不難理解,就是用陣列來儲存階乘的結果,主要就是按位進行處理,包括進位的處理