題目
問題描述給定乙個十進位制整數n,輸出n的各位數字之和。輸入格式輸入乙個整數n。輸出格式輸出乙個整數,表示答案。樣例輸入20151220樣例輸出 13樣例說明20151220的各位數字之和為2+0+1+5+1+2+2+0=13
。評測用例規模與約定所有評測用例滿足:
0 ≤ n ≤ 1000000000。
思路
我的想法是將以string型別進行輸入,然後處理每一位。本來想著用string庫里的stoi()/atoi()函式將string轉成int,但是sum+=atoi(num[i]);這樣的用法會報錯,提示「invalid conversion from 'char' to 'const char*' [-fpermissive]」。
看一下atoi()函式的原型
int atoi(constchar *str );
功能:把字串轉換成整型數。
str:要進行轉換的字串
返回值:每個函式返回
int 值,此值由將輸入字元作為數字解析而生成。如果該輸入無法轉換為該型別的值,則atoi的返回值為 0。
就可以看出來為什麼報錯了,也就是atoi()希望的輸入是乙個字串文字,而不是num[i]這樣單個的字元。
直接用num[i]-'0'
將單個字元轉換成int就好了,因為如果每個字元都是數字,那麼num[i]的值就是'0'-'9',減去'0'的字元ascii碼的差值就恰好是這個數字。
題解
#include#includeusing
namespace
std;
intmain()
cout
return0;
}
CCF CSP201512 1 位數之和
題目鏈結 問題描述 試題編號 201512 1 試題名稱 數字之和 時間限制 1.0s 記憶體限制 256.0mb 問題描述 問題描述 給定乙個十進位制整數n,輸出n的各位數字之和。輸入格式 輸入乙個整數n。輸出格式 輸出乙個整數,表示答案。樣例輸入 樣例輸出 樣例說明 20151220的各位數字之...
CCF CSP 201512 01 位數之和
問題描述 試題編號 201512 1 試題名稱 數字之和 時間限制 1.0s 記憶體限制 256.0mb 問題描述 問題描述 給定乙個十進位制整數n,輸出n的各位數字之和。輸入格式 輸入乙個整數n。輸出格式 輸出乙個整數,表示答案。樣例輸入 樣例輸出 樣例說明 20151220的各位數字之和為2 0...
求出5位數和6位數中各位數字之和為N的回文數
問題描述 123321是乙個非常特殊的數,它從左邊讀和從右邊讀是一樣的。輸入乙個正整數n,程式設計求所有這樣的五位和六位十進位制數,滿足各位數字之和等於n 輸入格式 輸入一行,包含乙個正整數n。輸出格式 按從小到大的順序輸出滿足條件的整數,每個整數佔一行。樣例輸入 52樣例輸出 899998 989...