一.
題目描述:
讀入兩個不超過25位的火星正整數a和b,計算a+b。需要注意的是:在火星上,整數不是單一進製的,第n位的進製就是第n個素數。例如:地球上的10進製數2,在火星上記為「1,0」,因為火星個位數是2進製的;地球上的10進製數38,在火星上記為「1,1,1,0」,因為火星個位數是2進製的,十位數是3進製的,百位數是5進製的,千位數是7進製的……
輸入:
測試輸入包含若干測試用例,每個測試用例佔一行,包含兩個火星正整數a和b,火星整數的相鄰兩位數用逗號分隔,a和b之間有乙個空格間隔。當a或b為0時輸入結束,相應的結果不要輸出。
輸出:
對每個測試用例輸出1行,即火星表示法的a+b的值。
樣例輸入:
1,0 2,1
4,2,0 1,2,0
1 10,6,4,2,1
0 0樣例輸出:
1,0,1
1,1,1,0
1,0,0,0,0,0
二.題目分析
剛看到這道題目,我真的是楞了,一心想著38為什麼表示成1,1,1,0,真的是百思不得其解,在網上看到一些解題報告,看到了長整數相加...好吧,終於開竅了,我真的是想多了...確實,這是一道長整數加法,這樣看來,題目並不難,但是一直wa,自己也測試了大資料,小資料,還是沒有找到錯誤原因,哎,對於不能提供錯誤樣例的評判系統,真的是讓人抓狂,這也是我一直熱愛usaco的原因。
在此還是貼出我的不知道錯因的錯誤**,歡迎各位行家指正,不勝感激!先貼出來,以後在改正吧,今天已經找bug精疲力盡...
三.**
#include #include #include #include int prime[51];
int isprime(int x)
return 1;
}void reverse(int *a,int an)
{ int i,j,temp;
for(i=0,j=an-1;ibn?an:bn,i=an,j=bn,temp;
while(i
題目1016 火星A B
題目描述 讀入兩個不超過25位的火星正整數a和b,計算a b。需要注意的是 在火星上,整數不是單一進製的,第n位的進製就是第n個素數。例如 地球上的10進製數2,在火星上記為 1,0 因為火星個位數是2進製的 地球上的10進製數38,在火星上記為 1,1,1,0 因為火星個位數是2進製的,十位數是3...
題目1016 火星A B
題目描述 讀入兩個不超過25位的火星正整數a和b,計算a b。需要注意的是 在火星上,整數不是單一進製的,第n位的進製就是第n個素數。例如 地球上的10進製數2,在火星上記為 1,0 因為火星個位數是2進製的 地球上的10進製數38,在火星上記為 1,1,1,0 因為火星個位數是2進製的,十位數是3...
Jobdu 題目1016 火星A B
題目描述 讀入兩個不超過25位的火星正整數a和b,計算a b。需要注意的是 在火星上,整數不是單一進製的,第n位的進製就是第n個素數。例如 地球上的10進 制數2,在火星上記為 1,0 因為火星個位數是2進製的 地球上的10進製數38,在火星上記為 1,1,1,0 因為火星個位數是2進製的,十位 數...