[SSL_CHX][2021-8-19]数根

该博客介绍了一个计算正整数数根的问题。数根是指将一个数的各位数字相加,直至结果为一位数的过程。例如,8943的数根是6。博主提供了两种解题思路,一种是直接计算数根,另一种是利用数位和与9的关系。并给出了相应的代码实现。
摘要由CSDN通过智能技术生成

题目描述

将正整数 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 取余余

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值