開啟章節選單
11332 Summing Digits
題目連結
題目敘述
對於一個正整數 n,定義 f(n) 為 n 各位數字的總和。 這個操作若反覆進行,最終會得到一個一位數,這個值稱作 g(n)。
輸入格式
每行有一個正整數 n
、n <= 2,000,000,000
,最後一行以 n = 0 結尾。
輸出格式
對於每個輸入的數字,輸出 g(n),每行一個結果。
解題思路
用遞迴反覆加總每位數,直到數字小於 10。
程式碼
#include<bits/stdc++.h> using namespace std; int f(int n) { if (n < 10) return n; int t = 0; while (n > 0) { t += n % 10; n /= 10; } return f(t); } int main() { int n; while(cin >> n && n) { cout << f(n) << "\n"; } }