洛谷 1604 B進製星球(高精度演算法)

2022-09-18 01:33:24 字數 1471 閱讀 2068

題目背景

進製題目,而且還是個計算器~~

題目描述

話說有一天,小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希望你可以幫助他,編寫實...