《ACM程式設計》書 訓練題中的H題

2021-07-29 11:53:26 字數 785 閱讀 5168

題意簡單的來說,就是每組兩個二十進位制的數,11到19用a到z表示,結果也是輸出二十進位制。

思路是先以字串形式輸入到字串陣列裡,然後將字元轉化為相應的十進位制數,存到整型陣列裡,這裡要注意兩個字串如果不一樣長,就要從短的那個第一位的位置開始相加。然後把得到的和20進一位,注意陣列不要越界,c[0]超過20便在輸出時直接輸出乙個「1」就好。然後再把大於10的轉化為相應的字母。

**如下:

include#include#include#includeusing namespace std;

int main()

else

if (h==1)

for (i=0;i='0'&&a[i]<='9') c[i]+=a[i]-'0';

if (a[i]>='a'&&a[i]<'z') c[i]+=a[i]-'a'+10;

if (i>=abs(e-f))

}else

for (i=0;i='0'&&b[i]<='9') c[i]+=b[i]-'0';

if (b[i]>='a'&&b[i]<'z') c[i]+=b[i]-'a'+10;

if (i>=abs(e-f))

}for (i=max-1;i>0;i--)

if (c[i]>=20)

for (i=0;i=20&&i==0)

if (c[i]<10) cout

}

其實只要把思路理清楚了,基本上就能做的差不多。

《ACM程式設計》 H題

問題描述 給你幾組20進製的數,求上下兩行對應兩個數相加的和。解題思路 用字串形式輸入,然後將其轉化成數字,最後在將10以上的數用字元輸出。如果兩個數相加超過19,那麼就要向下一位產生進製。其中數制轉換可以用呼叫函式完成,節省時間。include include include include us...

我的ACM訓練計畫

經歷過了一些事,接下來可以用心的搞演算法了。最重要的是基礎打牢,下面是一些基本的演算法按照優先順序來做 已經接觸和知道的 最薄弱的資料結構 字典樹,線段樹,掃瞄線,樹狀陣列,堆排序,並查集,kmp演算法,rmp。基本的stl用法要熟練 一些圖的演算法 最短路徑,最小生成樹,拓撲排序,匈牙利演算法,k...

關於acm程式設計書中題目 H 第8題

第8題是讓用a j表示10 19,來表示出二十進位制,並隨其進行加法計算。首先我對比著十進位制和十六進製制,八進位制的轉化關係,想著先把輸入的二十進位制轉化為十進位制,然後再計算,但發現二十變十簡單,十變二十我卻想不到方法,只能改變方法。然後按著高精度計算的法子,先輸入字串型別,轉化成陣列儲存,一位...