高精度 B進製星球

2021-10-03 20:00:07 字數 1267 閱讀 1522

題目

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

話說有一天,小z乘坐宇宙飛船,飛到乙個美麗的星球。因為歷史的原因,科技在這個美麗的星球上並不很發達,星球上人們普遍採用b(2<=b<=36)進製計數。星球上的人們用美味的食物招待了小z,作為回報,小z希望送乙個能夠完成b進製加法的計算器給他們。 現在小z希望你可以幫助他,編寫實現b進製加法的程式。

共3行第1行:乙個十進位制的整數,表示進製b。第2-3行:每行乙個b進製數正整數。數字的每一位屬於,每個數字長度<=2000位。

乙個b進製數,表示輸入的兩個數的和。

輸入 #1 複製

4123

321輸出 #1 複製

1110

說明/提示

進製計算器

這題也是高精度題。

首先用string讀入資料,(因為資料裡有數字和字母),然後轉換成對應數字 存放在陣列裡(這裡用a【】,b【】)

然後做高精度加法。

**幾個注意點:**這也是高精度加法的日常注意

1 如果最高位大於n進製,表示可以向前再進製

2 以防 最高位是 0的情況

3 輸出,注意是從後往前,然後大於10還要轉換成對應字母

具體看**。。。。。。

#includeusing namespace std;

const int maxn = 20000;

int n;

string x,y;

int a[maxn],b[maxn],c[maxn];

int main()

for(int i=0;i='0' &&y[i] <='9') b[lenb -i] = y[i] -'0';

else if(y[i] >='a' && n>=10) b[lenb-i] = y[i] -'a'+10;

}//ps:下面換成這樣寫也可以

//int lenc=0;

// int cf=0;

// while(lenc <=lena || lenc <=lenb)

// while(c[lenc]==0 && lenc >1)

// for(int i=lenc;i>=1;i--)else

//以防 最高位是 0的情況

while(c[maxlen]==0 && maxlen >1)

//輸出,注意是從後往前,然後大於10還要轉換成對應字母

for(int i=maxlen;i>=1;i--)else

} return 0;

}

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

題目背景 進製題目,而且還是個計算器 題目描述 話說有一天,小z乘坐宇宙飛船,飛到乙個美麗的星球。因為歷史的原因,科技在這個美麗的星球上並不很發達,星球上人們普遍採用b 2 b 36 進製計數。星球上的人們用美味的食物招待了小z,作為回報,小z希望送乙個能夠完成b進製加法的計算器給他們。現在小z希望...

萬進製高精度乘法

program hpm type arr array 1.1000 of longint var a,b,c arr lena,lenb,len1,len2,t1,t2 longint procedure init var s,temp ansistring i longint begin read...

高精度進製轉換模板

高精度進製轉換模板 高精度進製轉換 把oldbase 進製的數轉化為newbase 進製的數輸出。呼叫方法,輸入str,oldbase newbase.change solve output 也可以修改output 使符合要求,或者存入另外乙個字元陣列,備用 include include defi...