杭電ACM 1018 BigNumber

Problem Description

In many applications very large integers numbers are required. Some of these applications are using keys for secure transmission of data, encryption, etc. In this problem you are given a number, you have to determine the number of digits in the factorial of the number.

Input

Input consists of several lines of integer numbers. The first line contains an integer n, which is the number of cases to be tested, followed by n lines, one integer 1 ≤ n ≤ 107 on each line.

Output

The output contains the number of digits in the factorial of the integers appearing in the input.

Sample Input

2

10

20

Sample Output

7

19

首先分析一下這個題目的具體內(nèi)容枪向,輸入一個數(shù)N狭郑,接著輸入N個數(shù)雏赦,求出它們的階乘并輸出。
實例 輸入2 锰提,然后輸入兩個數(shù)10、20璃饱,輸入為7胖笛、19,分別為10的階乘結(jié)果的位數(shù)和20的階乘結(jié)果的位數(shù)画切。
由于階乘的結(jié)果是一個大數(shù)竣稽,Int類型無法解決,生活中大數(shù)的應(yīng)用有很多霍弹,Java中有一個類BigIntegera表示大整數(shù)類毫别。理論上可以表示無限大的數(shù),用這個解決十分方便典格。

以下是關(guān)于BigIntegera的用法:

Ⅰ基本函數(shù):

1.valueOf(parament); 將參數(shù)轉(zhuǎn)換為制定的類型
   比如 int a=3;
   BigInteger b=BigInteger.valueOf(a);
   則b=3;
   String s=”12345”;
   BigInteger c=BigInteger.valueOf(s);
   則c=12345岛宦;
 2.add(); 大整數(shù)相加
   BigInteger a=new BigInteger(“23”);
   BigInteger b=new BigInteger(“34”);
   a. add(b);
 3.subtract(); 相減
 4.multiply(); 相乘
 5.divide();    相除取整 
 6.remainder(); 取余
 7.pow();   a.pow(b)=a^b 
 8.gcd();   最大公約數(shù)
 9.abs(); 絕對值
 10.negate(); 取反數(shù)
 11.mod(); a.mod(b)=a%b=a.remainder(b);
 12.max(); min();
 13.punlic int comareTo();
 14.boolean equals(); 是否相等
 15.BigInteger構(gòu)造函數(shù):
   一般用到以下兩種:
   BigInteger(String val);
   將指定字符串轉(zhuǎn)換為十進(jìn)制表示形式;
   BigInteger(String val,int radix);
   將指定基數(shù)的 BigInteger 的字符串表示形式轉(zhuǎn)換為 BigInteger

Ⅱ.基本常量:

A=BigInteger.ONE    1
B=BigInteger.TEN    10
C=BigInteger.ZERO   0

Ⅲ.基本操作

讀入:
用Scanner類定義對象進(jìn)行控制臺讀入,Scanner類在java.util.*包中

Scanner cin=new Scanner(System.in);// 讀入
while(cin.hasNext())   //等同于!=EOF
{
   int n;
   BigInteger m;
   n=cin.nextInt(); //讀入一個int;
   m=cin.BigInteger();//讀入一個BigInteger;
System.out.print(m.toString());
}

下面是我用java寫的解決方法耍缴,主要是通過for循環(huán)求出某個數(shù)的階乘砾肺,

注意大數(shù)中的 1 的定義為 BigInteger a=BigInteger.ONE;

Int 類型通過String.valueOf()轉(zhuǎn)化再定義為BigInteger類型的數(shù)才可以與BigInteger類型的數(shù)進(jìn)行運算。

public class Bigdata {    
public static void main(String[] args){        
    Scanner in = new Scanner(System.in);       
    int num = in.nextInt();        
    for(int i=0;i<num;i++ ){            
        int text = in.nextInt();            
        BigInteger a=BigInteger.ONE;           
        for(int j=1;j<=text;j++){                
            BigInteger c = new BigInteger(String.valueOf(j));                
            a = a.multiply(c);            
    }            
    System.out.println(String.valueOf(a).length());        
}    
}}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末防嗡,一起剝皮案震驚了整個濱河市变汪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蚁趁,老刑警劉巖裙盾,帶你破解...
    沈念sama閱讀 216,919評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異他嫡,居然都是意外死亡番官,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評論 3 392
  • 文/潘曉璐 我一進(jìn)店門钢属,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鲤拿,“玉大人,你說我怎么就攤上這事署咽〗辏” “怎么了?”我有些...
    開封第一講書人閱讀 163,316評論 0 353
  • 文/不壞的土叔 我叫張陵宁否,是天一觀的道長窒升。 經(jīng)常有香客問我,道長慕匠,這世上最難降的妖魔是什么饱须? 我笑而不...
    開封第一講書人閱讀 58,294評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮台谊,結(jié)果婚禮上蓉媳,老公的妹妹穿的比我還像新娘譬挚。我一直安慰自己,他們只是感情好酪呻,可當(dāng)我...
    茶點故事閱讀 67,318評論 6 390
  • 文/花漫 我一把揭開白布减宣。 她就那樣靜靜地躺著,像睡著了一般玩荠。 火紅的嫁衣襯著肌膚如雪漆腌。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,245評論 1 299
  • 那天阶冈,我揣著相機與錄音闷尿,去河邊找鬼。 笑死女坑,一個胖子當(dāng)著我的面吹牛填具,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播匆骗,決...
    沈念sama閱讀 40,120評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼劳景,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了绰筛?” 一聲冷哼從身側(cè)響起枢泰,我...
    開封第一講書人閱讀 38,964評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎铝噩,沒想到半個月后衡蚂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,376評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡骏庸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,592評論 2 333
  • 正文 我和宋清朗相戀三年毛甲,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片具被。...
    茶點故事閱讀 39,764評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡玻募,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出一姿,到底是詐尸還是另有隱情七咧,我是刑警寧澤,帶...
    沈念sama閱讀 35,460評論 5 344
  • 正文 年R本政府宣布叮叹,位于F島的核電站艾栋,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蛉顽。R本人自食惡果不足惜蝗砾,卻給世界環(huán)境...
    茶點故事閱讀 41,070評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧悼粮,春花似錦闲勺、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至苞笨,卻和暖如春债朵,著一層夾襖步出監(jiān)牢的瞬間子眶,已是汗流浹背瀑凝。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留臭杰,地道東北人粤咪。 一個月前我還...
    沈念sama閱讀 47,819評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像渴杆,于是被迫代替她去往敵國和親寥枝。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,665評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 其實窮真的是原罪磁奖。我看不上別人拿窮說事囊拜,說窮不是你逃避的理由,不是你不行的理由比搭,不是你做任何事的理由冠跷,那時真的很自...
    供養(yǎng)人閱讀 1,065評論 0 0
  • 當(dāng)全世界都叫囂著去旅行的時候,我也沒能免俗身诺。Backpack這顆種子大概是在初中結(jié)業(yè)那個沒有作業(yè)的暑假埋下的蜜托。那時...
    Susie910閱讀 334評論 1 2
  • 最近一直在商量國慶的計劃。 本來這篇文章是在九月十日左右就迸發(fā)出來的想法霉赡,因為那天我成功地欺騙了高中同學(xué)買了來長沙...
    梓楚陽閱讀 515評論 0 1
  • 最近在看一個線上產(chǎn)品學(xué)習(xí)視頻橄务,課后作業(yè)就是分析簡書這款產(chǎn)品…所以有了我這篇文章……
    Alice_a閱讀 177評論 0 0