解题思路
就是很简单的递归,终止条件设置为当前数值小于10即可。写题解主要是因为提交的时候无法编译,报错信息是不是每一个分支都有返回值,于是把 函数的最后一行改为
才通过。提醒注意函数内每条分支都要有返回值。
通过代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll deal(ll n)
{
if (n < 10) return n;
ll ans = 0;
while(n)
{
ans += n % 10;
n /= 10;
}
return deal(ans);
}
int main()
{
ll n;
cin >> n;
cout << deal(n) << endl;
return 0;
}