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

2021-07-28 13:07:59 字數 1100 閱讀 7452

第8題是讓用a-j表示10-19,來表示出二十進位制,並隨其進行加法計算。

首先我對比著十進位制和十六進製制,八進位制的轉化關係,想著先把輸入的二十進位制轉化為十進位制,然後再計算,但發現二十變十簡單,十變二十我卻想不到方法,只能改變方法。

然後按著高精度計算的法子,先輸入字串型別,轉化成陣列儲存,一位一位的計算。中間比較注意的是倒序儲存,滿二十進一等,但是因為高精度那節講得很清楚,也沒什麼難處。

a-j與10-19的轉化是乙個重點,我有兩個思路:1、定義map容器,char對應int 。  2、使用ascii碼進行計算。   但由於這次聯絡stl,我選擇了方法一。

定義map如果挨個賦值顯然是麻煩的,我用了兩個迴圈進行賦值。

**到了最後,我也遇到了很困難的問題---如何把計算好的10-19換回a-j,我定義的map,即知道了int怎麼著對應的char,我試了試幾個函式,鍵值等都沒有效果,也是無奈放棄,轉頭回到我上面說的ascii碼上解決。

**如下:

using

namespace std;

intmain

()for

(c='a'

;c<=

'j';c++)

while

(cin>>s1>>s2)

for(i=

0;iv1.

push_back

(s1[a-i-1

]);for

(i=0

;iv2.

push_back

(s2[b-i-1

]);int f=0;

for(i=

0;ielse f=0;

if(x<

10) c=x+48

;else c=x+87

; v3.

push_back

(c);}if

(f!=

0) cout

;i>=

0;i--)

cout

clear

(); v2.

clear

(); v3.

clear

();}

return0;

}

關於acm程式設計書中題目 B第二題

這次的題都是英文題,讀的時候依然生澀難懂,尤其是剛上來從第一題開始看,連谷歌翻譯都用上了就是覺得迷迷糊糊,乾脆就把這題扔下了,找起簡單點的先做。b 第二題 第二題要求編出乙個字典,乙個字串與另乙個字串要剛好對應。做題時不熟悉map容器的用法,我最開始的想法 一是建乙個string陣列,用getlin...

《ACM程式設計》書中題目 J

題目簡要 輸入從乙個整數n 這是要跟隨的字串數。以下n行每個包含乙個最多50個大寫字母的字串。對於輸入中的每個字串,首先輸出字串的編號,列印字串start是從輸入字串匯出的,每次都替換為字母表中的以下字母,並用 a 替換 z 在每個測試用例後列印空白行。例如 sample input 2hal sw...

acm程式設計書中題目l

輸入乙個字串,將這個字串倒序輸出。運用string中的getline cin,字串名 進行輸入然後通過獲取字串長度,倒序輸出。include include include using namespace std intmain d 100 int a,i,j while cin a 輸入字串 fo...