题目描述
将正整数 n 的各个位相加,得到一个新的数字 k ,如果这 k 是一位数,称 k 为 n 的数根。如果 k 不是一位数,则对其重复处理,直到 k 成为一位数,此时 k 也称为 n 的数根。
EG:8943:8+9+4+3=24, 24:2+4=6 所以 6 是 8943 的数根;
请编写程序,计算 n 的数根。
输入格式
输入一个正整数n
输出格式
输出一个数,表示原数的数根。
输入样例
8943
输出样例
6
数据范围
对于35%的数据,1≤n<10000; 对于100%的数据,1≤n<10^9;
解题思路
1.按照题目要求,计算数根,直到 n≤9 为止。
2.本题还有一个巧妙的解法,我们判断一个数是否为 9 的倍数,可以将这个数各个数位求和,然后计算加和是否为 9 的倍数。这是因为 10n%9=1 。所以 x 对 9 求余数等于 x 的各个数位之和对 9 取余。
数位和对 9 取余余