杭電ACM 1230 火星A B

2021-06-23 02:59:24 字數 1201 閱讀 5793

problem description

讀入兩個不超過25位的火星正整數a和b,計算a+b。需要注意的是:在火星上,整數不是單一進製的,第n位的進製就是第n個素數。例如:地球上的10進製數2,在火星上記為「1,0」,因為火星個位數是2進製的;地球上的10進製數38,在火星上記為「1,1,1,0」,因為火星個位數是2進製的,十位數是3進製的,百位數是5進製的,千位數是7進製的……

input

測試輸入包含若干測試用例,每個測試用例佔一行,包含兩個火星正整數a和b,火星整數的相鄰兩位數用逗號分隔,a和b之間有乙個空格間隔。當a或b為0時輸入結束,相應的結果不要輸出。

output

對每個測試用例輸出1行,即火星表示法的a+b的值。

sample input

1,0 2,1

4,2,0 1,2,0

1 10,6,4,2,1

0 0

sample output

1,0,1

1,1,1,0

1,0,0,0,0,0

ac**:

#include

#include

#include

#define max(a,b) (a>b?a:b)

int s=;

int main()

a[j++]=x;  //要注意j++要放在if裡面,因為只有當是數字時才進行賦值,是','時不能進行賦值,先將結果存放在陣列a裡

}else  //如果是字元的話就直接i++

i++;

}for(j=j-1,i=0;j>=0;j--,i++) //為了下面的大數加法方便,所以將a陣列中的整數倒過來賦值給陣列a1

for(j=0,i=0;i<=len2-1;) //對字串s2的處理同上

a[j++]=y;

}else

i++;

}for(j=j-1,i=0;j>=0;j--,i++)

for(i=0;i<=99;i++)  //大數加法        }

for(i=99;i>=0&&a1[i]==0;i--); //除去前面不必要的0

for(;i>=1;i--)        //因為輸入0 0時就結束了,所以就不用判斷i<0的情況了,直接將結果輸出

printf("%d\n",a1[0]);      

}return 0;}

杭電OJ 1230 火星A B

problem description 讀入兩個不超過25位的火星正整數a和b,計算a b。需要注意的是 在火星上,整數不是單一進製的,第n位的進製就是第n個素數。例如 地球上的10進製數2,在火星上記為 1,0 因為火星個位數是2進製的 地球上的10進製數38,在火星上記為 1,1,1,0 因為火...

hdu 1230(火星A B,進製)

個人感覺如果進製轉換的話太麻煩,直接模擬加法,不同位數採用不同的進製加法。但是還是wa了兩次,沒有處理好餘數的問題,當不能進製時。2013 04 23 cpp include stdio.h include string.h include math.h int prime 25 cnt void ...

杭電2524 矩形A B

problem description 給你乙個高為n 寬為m列的網格,計算出這個網格中有多少個矩形,下圖為高為2,寬為4的網格.第一行輸入乙個t,表示有t組資料,然後每行輸入n,m,分別表示網格的高和寬 n 100 m 100 output 每行輸出網格中有多少個矩形.sample input 2...