1. 程式人生 > >hdu 1261 (大數除法)

hdu 1261 (大數除法)

分析:

ans = sum!/(a1!*a2!*……);

#include"stdio.h"
#include"string.h"
int main()
{
    int n;
    int sum;
    int a[30];
    int t,len;
    int i,j,k;
    int carry;
    int num[155];
    while(scanf("%d",&n)!=-1,n)
    {
        sum=0;
        for(i=0;i<n;i++)
        {
            scanf("%d",&a[i]);
            sum+=a[i];
        }

        memset(num,0,sizeof(num));
        num[0]=1;
        len=1;
        for(i=2;i<=sum;i++)
        {
            carry=0;
            for(j=0;j<len;j++)
            {
                num[j]*=i;
                num[j]+=carry;
                if(num[j]>=100000)
                {
                    carry=num[j]/100000;
                    num[j]%=100000;
                }
                else carry=0;
            }
            if(carry!=0)num[len]=carry;
            while(num[len]!=0)len++;
        }
        for(i=0;i<n;i++)
        {
            for(j=2;j<=a[i];j++)
            {
                t=0;
                carry=0;
                for(k=len-1;k>=0;k--)
                {
                    carry=t;
                    t=(num[k]+t*100000)%j;
                    num[k]=(num[k]+carry*100000)/j;
                }
                while(num[len-1]==0)len--;
            }
        }
        for(i=len;i>=0;i--)
            if(num[i]!=0)
            {
                printf("%d",num[i]);break;
            }
        for(i--;i>=0;i--)
        {
            printf("%05d",num[i]);
        }
        printf("\n");
    }
    return 0;
}


相關推薦

hdu 1261 大數除法

分析: ans = sum!/(a1!*a2!*……); #include"stdio.h" #include"string.h" int main() { int n; int

母函數 Catalan數 大數乘法 大數除法 Train Problem II hdu1023

seve sample divide ict ins OS hdu aps nbsp Train Problem II Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/O

題解報告:hdu 1002 A + B Problem II大數加法

return 大數類 class family HERE contains urn integer ons Problem Description I have a very simple problem for you. Given two integers A and

hdu-1877大數+進制轉換

ble length names += tin bsp eve a+b 情況 題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=1877 思路:註意考慮0,0的情況。 #include<iostream> #incl

HDU-1002C語言大數加法

A + B Problem II Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 436132 Accepted Submission(

HDU 1250 Hat's Fibonacci 大數相加

Hat's Fibonacci Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 12953    Accepte

HDU 1250 Hat's Fibonacci大數相加

Hat's Fibonacci Problem Description A Fibonacci sequence is calculated by adding the previous two m

hdu 1023大數+卡特蘭數

題目:和那個I有關,是問火車按一定順序進站,出戰的順序有多少中。 分析: 典型的卡特蘭數,但本題數量巨大  所以採用大數來寫  java中提供了大數類,所以用了java寫 卡特蘭數公式:h(n)=C(2n,n)/(n-1)  遞推式: h(n)=h(n-1)*(4*n-2)

hdu 1212大數取餘

題目大意:輸入兩個數a, b, 要求輸出a mod b(a的長度小於1000, b <= 100000)(a 是長度, b是大小) 分析:直接程式碼,模板!模板! ac程式碼 #incl

HDU 1848sg博弈 Fibonacci again and again

ace main esp 數量 mode oid else while n) Fibonacci again and again Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K

HDU 4717樹形DP

== cnblogs div code 刪除 splay 沒有 str std 由於內存的限制。所以盡量要少開數組。一開始用了數組記錄每個點的度數和每個點的兒子數,還有vis記錄這個點是否處理過。然後超內存了。 實際上兒子數沒有必要存下來,只是每次遍歷自身的時候會用到,然後

統計難題HDU-1251字典樹

wkt mtu shp isl com shuf rrd xe8 xdg yhly5c梅覆來粕倜叛http://docstore.docin.com/sina_6341912133p1s7b1澇淪家濤缺細http://www.docin.com/gxk352s1mtus俟酚

矩形面積 HDU - 5251 旋轉卡殼

main pac namespace atan 旋轉卡殼 || one return ide 矩形面積 HDU - 5251 題意:求能覆蓋凸包的最小矩形面積. 旋轉卡殼~ 1 #include <bits/stdc++.h> 2 using na

hdu 2018母牛問題2019數列有序!2020絕對值排序 2021發工資2022海選女主角

amp pre == 數組 sca int 如果 fab main 要發現它的規律,題n年牛的總數等於n-1年的母牛數加上第n年新增的母牛數,第n年只有n-3年的那些母牛才能產母牛,所以第n年的母牛數等於第n-1和n-3年的母牛數的和,即sum(n)=sum(n-1)+su

斐波那契數列大數加法

斐波那契 ++ add ret div 加法 clas 註意 cin 題意: 求斐波那契的前10000項目 分析: 模擬豎式加法, 用string作為數字的儲存形式 #include<bits/stdc++.h> using namespace std; st

HDU 1016DFS_B題解題報告

兩個 oid spl string tor -s b- 個數 code 題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=1016 -------------------------------------------------

HDU 1312DFS_C題解題報告

spa close .cn algorithm -s for pla sin bit 題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=1312 ------------------------------------------

You Are the One HDU - 4283區間dp

eas value script names elf for stdio.h 表示 text You Are the One Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Jav

百裏玄策:‘我有哥哥大數,你沒有,這就是任性的理由’

大數據這兩年大數據發展越來越好,身處互聯網的環境中,突然發現,周圍的人經常談的話題變了,很多人都在談論大數據、人工智能、智慧城市,大數據中心等大數據相關的內容,看來大數據是真的火起來了, 人類已經進入到了一個無商不利用數據,無領域(包括政府)不利用數據的時代。無論你利用數據賺錢也好,還是希望改善公共服務和社會

hdu 3473 劃分樹2

mage def typedef sin else BE IT ext cati Minimum Sum Time Limit: 16000/8000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)