求數字的每一位之和
- 題目描述:
- 解法思路:
- 解法代碼:
- 運行結果:
題目描述:
輸入一個整數m,求這個整數m的每?位之和,并打印。
測試1:
輸?:1234
輸出:10
測試2:
輸?:366
輸出:15
解法思路:
我們可以通過不斷獲取該整數的個位數,然后將該位數從整數中刪除,重復這個過程直到整數為0,
依次求得每個位數的值,并將它們相加,即可得到整數的每?位之和。
1. 首先,我們可以使用一個變量 sum 來記錄每一位的和,初始值為0。然后,我們可以使用循環來不斷地取出整數m的最后?位,并將其加入到 sum 中,直到m變為0。
2. 在每次循環中,我們可以通過取模運算( % )和整除運算( / )來獲取m的最后?位和去掉最后?位的新值。具體來說,我們可以使用 m % 10 來獲取m的最后?位數字,而通過 m / 10可以獲取去掉最后?位后的新值。
3. 當m變為0時,整個求和過程結束,此時 sum 中存儲的就是整數m的每?位之和。最后,我們可以輸出 sum 的值即可。
解法代碼:
#include <stdio.h>
int digit_sum(int m)
{//定義變量記錄每?位的和int s = 0;//當前數還不為0,獲取其個位數加到s中while (m){s += m % 10;//刪除其個位數m /= 10;}//返回每?位的和return s;
}
int main()
{int m = 0;//輸?整數scanf("%d", &m);//獲取每?位的和int ret = digit_sum(m);printf("%d\n", ret);return 0;
}