題目背景
進製題目,而且還是個計算器~~
題目描述
話說有一天,小z乘坐宇宙飛船,飛到乙個美麗的星球。因為歷史的原因,科技在這個美麗的星球上並不很發達,星球上人們普遍採用b(2<=b<=36)進製計數。星球上的人們用美味的食物招待了小z,作為回報,小z希望送乙個能夠完成b進製加法的計算器給他們。 現在小z希望你可以幫助他,編寫實現b進製加法的程式。
輸入輸出格式
輸入格式:
共3行第1行:乙個十進位制的整數,表示進製b。第2-3行:每行乙個b進製數正整數。數字的每一位屬於,每個數字長度<=2000位。
輸出格式:
乙個b進製數,表示輸入的兩個數的和。
輸入輸出樣例
輸入樣例#1:
4 123
321
輸出樣例#1:
1110
這題我們有幾個注意事項,只要解決了這題完全不是問題
①這個b進製數有可能是字母,所以我們要在轉換為數字要減55
②進製時注意,是b進製的加法。
③輸出字母是要特殊判斷
**如下:
var
a,b:array[1..10001]of integer;
i,g,l1,l2,len:integer;
s1,s2:ansistring;
s:set
of'a'..'z';
begin
s:=['a'..'z'];
readln(g);
readln(s1);
l1:=length(s1);
for i:=1
to l1 do
if s1[i] in s then a[l1-i+1]:=ord(s1[i])-55
else a[l1-i+1]:=ord(s1[i])-48;
readln(s2);
l2:=length(s2);
for i:=1
to l2 do
if s2[i] in s then b[l2-i+1]:=ord(s2[i])-55
else b[l2-i+1]:=ord(s2[i])-48;
i:=1;
while (i<=l1)or(i<=l2) do
begin
a[i]:=a[i]+b[i];
if a[i]>=g then
begin
a[i+1]:=a[i+1]+1;
a[i]:=a[i]-g;
end;
inc(i);
end;
if a[i]>0
then len:=i else len:=i-1;
for i:=len downto1do
if a[i]>=10
then
write(chr(a[i]+55)) else
write(a[i]);
end.
題目 洛谷1604 B進製星球(高精加法 R進製)
題目描述 話說有一天,小z乘坐宇宙飛船,飛到乙個美麗的星球。因為歷史的原因,科技在這個美麗的星球上並不很發達,星球上人們普遍採用b 2 b 36 進製計數。星球上的人們用美味的食物招待了小z,作為回報,小z希望送乙個能夠完成b進製加法的計算器給他們。現在小z希望你可以幫助他,編寫實現b進製加法的程式...
高精度 B進製星球
題目 進製題目,而且還是個計算器 話說有一天,小z乘坐宇宙飛船,飛到乙個美麗的星球。因為歷史的原因,科技在這個美麗的星球上並不很發達,星球上人們普遍採用b 2 b 36 進製計數。星球上的人們用美味的食物招待了小z,作為回報,小z希望送乙個能夠完成b進製加法的計算器給他們。現在小z希望你可以幫助他,...
洛谷P1604 B進製星球
進製題目,而且還是個計算器 話說有一天,小z乘坐宇宙飛船,飛到乙個美麗的星球。因為歷史的原因,科技在這個美麗的星球上並不很發達,星球上人們普遍採用b 2 b 36 進製計數。星球上的人們用美味的食物招待了小z,作為回報,小z希望送乙個能夠完成b進製加法的計算器給他們。現在小z希望你可以幫助他,編寫實...