1. 程式人生 > >HDU 1261 字串數(大數階乘 除法 組合 java)

HDU 1261 字串數(大數階乘 除法 組合 java)

生平第一次用java A題

這個題目明顯的一個全排列除以相同元素的排列數

import java.util.*;
import java.math.*;
public class Main
{      
	
    public static void main(String []args)
    {
        int i,n,j,total=0;
        BigInteger result,dev,now;
        int ans[] =new int [100];
        Scanner cin=new Scanner(System.in);
        while(cin.hasNext())
        {
            n=cin.nextInt();
            if(n==0) return ;
            total=0;
            for(i=0;i<n;i++){
            	ans[i]=cin.nextInt();
            	total+=ans[i];
            }
            result=BigInteger.valueOf(1);
            dev=BigInteger.valueOf(1);
            for(i=2;i<=total;i++)
                result=result.multiply(BigInteger.valueOf(i));
            for(i=0;i<n;i++){
            	now=BigInteger.valueOf(1);
            	for(j=1;j<=ans[i];j++)
            	now=now.multiply(BigInteger.valueOf(j));
            	dev=dev.multiply(now);
            }
            System.out.println(result.divide(dev));
         }
    }
}


相關推薦

HDU 1261 字串大數 除法 組合 java

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

Hdu 1261字串

fine 結束 -- script scan input 測試 -1 return 字串數 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Su

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

Hdu-1261 字串

Problem Description 一個A和兩個B一共可以組成三種字串:“ABB”,“BAB”,“BBA”. 給定若干字母和它們相應的個數,計算一共可以組成多少個不同的字串. Input 每組測試資料分兩行,第一行為n(1<=n<=26),表示不同字母的個數,第二行為n個

hdoj1018_Big Number大數位數

題目大意:輸入1~10^7的數字,輸出其階乘結果的位數。  例如10->7 說說解題思路,說大數階乘,立馬想到的是用陣列存結果-_-隨即想到以前做的那道大數階乘數字沒有這麼大,而且也不知道10^7的階乘得開多大陣列,所以只覺得記憶體不夠,開不到這麼大陣列,同時忽略了更

1261 字串JAVA

題目:Description一個A和兩個B一共可以組成三種字串:"ABB","BAB","BBA". 給定若干字母和它們相應的個數,計算一共可以組成多少個不同的字串. Input每組測試資料分兩行,第一

HDU-1261 字串(高精度,組合數學)

字串數 一個A和兩個B一共可以組成三種字串:”ABB”,”BAB”,”BBA”. 給定若干字母和它們相應的個數,計算一共可以組成多少個不同的字串. Input 每組測試資料分兩行,第一行為n(1<=n<=26),表示不同字母的個數,第二行

hdu 1261 字串 排列組合

#include <stdio.h> #include <string.h> #define SIZE 30 typedef long long ll ; int d[SIZE] ; int ans[1000] , f[15]; void multiply(int c) { ans[

問題最右邊不為 0 的

 P1134 階乘問題 4.9K通過 16.7K提交 題目提供者 評測方式雲端評測 標籤USACO高效能 難度普及/提高- 時空限制1000ms / 128MB  提交  

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

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

大數JAVA

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

杭電acm:大數附原始碼

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

NYOJ 28 大數JAVA

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

HDU 2010&CSU 1261 水仙花暴力

傳送門 初中的時候覺得這題好難,懷念一下o(^▽^)o 除10模10取位暴力╮(╯-╰)╭ Description 春天是鮮花燦爛的季節,水仙花就是其中最迷人的代表,數學上有個水仙花數,他是這樣

大數問題來自大佬部落格的方法

Java計算階乘(n!)需要使用實現使用BigDecimal類,因為用int最多正確算到12!,用long最多正確算到20!計算機中提供了長整型和雙精度等能儲存較大數的資料型別,但在有些時候,這樣的資料型別不能滿足實際用的需求,比如大數的階乘。請編寫程式,實現大

NYOJ 28.大數大數問題

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

幾種大數演算法效率比較Java

完整程式碼: package bigdatamul; import java.math.BigInteger; /** * 大數階乘 * * @Description: TODO(大數階乘) * * @author yzy * @date 201

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

python之路——函

fun false 技術 對象 pri pre star rgs 美的 函數名(第一對象) 1. 函數的內存地址,print(func) def func(): print(222) print(func) 2. 函數名可以賦值給其他變量 def func

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