分析:本題要求進行100位以內的二十進位制數字相加運算。加數和被加數的長度不一定相等。超長數字的相加,我們用字串來處理。
先將兩個字串反轉,再從第0位開始到末尾,兩位依次相加,如果兩位相加的結果超過19,那麼需要向下一位產生進製。
最後將結果陣列反轉輸出即可。注意字元轉為數字的做法,如果字元本身是數字,減『0』即可,如果是字母,減『a』 + 10。
**:
#include#includeint main()
else
for(i=0;i='a'&&a[i]<='j') //如果是字元
a[i]=a[i]-'a'+10;
if(a[i]>='0'&&a[i]<='9') //如果是數字
a[i]=a[i]-48;
}for(i=0;i='a'&&b[i]<='j')
b[i]=b[i]-'a'+10;
if(b[i]>='0'&&b[i]<='9')
b[i]=b[i]-48;
}int a1[1000],b1[1000];
memset(a1, 0, sizeof(a1));
memset(b1, 0, sizeof(b1));
for(i=n1-1,j=0;i>=0;i--,j++) //反轉陣列a
a1[j]=a[i];
for(i=n2-1,j=0;i>=0;i--,j++) //反轉b
b1[j]=b[i];
for (i=0;i19)
}for (i=999; i>=0 ; i--)
if (i==0)
max=0;
}for(i=max;i>=0;i--)
printf("\n");
}return 0;
}
ZCMU 1411 喜聞樂見的a b
time limit 1 sec memory limit 128 mb submit 386 solved 144 submit status web board 喜聞樂見的a b來了,當然二進位制,八進位制,十進位制什麼的估計你們也懶得寫了,來個20進製的a b 給出多組a和b,每個數字一行 數...
ZCMU1411 喜聞樂見的a b
喜聞樂見的a b來了,當然二進位制,八進位制,十進位制什麼的估計你們也懶得寫了,來個20進製的a b 給出多組a和b,每個數字一行 數字由0 9和小寫字母a j 10 19 給出的長度不超過100 每組資料輸出a b的和。1234567890 abcdefghij 99999jjjjj 999990...
1411 喜聞樂見的a b ZCMU
喜聞樂見的a b來了,當然二進位制,八進位制,十進位制什麼的估計你們也懶得寫了,來個20進製的a b 給出多組a和b,每個數字一行 數字由0 9和小寫字母a j 10 19 給出的長度不超過100 每組資料輸出a b的和 abcdefghij 99999jjjjj bdfi02467j iiiij0...