CPE 10473、UVA 11332程式解題。
解題觀念:
這題的精華就只有一個-字串轉整數、整數轉字串。
轉來轉去,加一加答案就出來了~
題目說明要將一串數字個別相加,當數字只剩下一位數字的數值時,那就是答案了。
因為是要將一串數字個別相加,所以需要規劃格子將數字定位以便於計算。這樣就可以用抓字元的方式抓出數字,這就是為何要用字串存放的原因,
這裡需要用到雙層迴圈。
一個控制字串長度,當字串長度等於1時,即印出答案。另一個控制計算,將數字個別相加。
(詳情看EX。)
解題步驟:
先宣告變數a存放字串,在宣告一個b字元變數等等會用到。
題目有說當輸入為0時,等於測資結束,所以要加一個if判斷式,判斷字串是否為0。
之後設定while迴圈,當字串長度還是大於1時,繼續for迴圈的計算。
for迴圈,將字串的數字一個一個抓出來,每抓一個字元就轉成整數,之後加到count。
將相加的結果從整數型態再轉回字串存放到a。
印出。
EX:
範例測資 11。
輸入11,存放到字串a => 判斷是否為0,不符合 => 進入while迴圈,字串長度大於1 。
進入for迴圈計算,抓位置為第0個位置的字元=1轉為整數,加到count=1,
之後抓第1個位置的字元=1轉為整數,加到count=2 。
將count=2從整數型態轉回字串存放到a=2。
字串長度為1,跳出while迴圈,印出字串a。
BY 小K
沒有留言:
張貼留言