首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

数根

Digital Root

就在今晚,号称最大风力“18”级的台风“山竹”就要从中国香港南部掠过,商店关门,小巴和大巴也少了很多,一年一度的避台风活动又来了,这次的“山竹”确实是往年的升级版。这周我们最后看几道简单的练习,再加上前面将近38天的练习,如果能一步步理解跟下来的话,在所有中学生中,能力应该达到了中游水准,后面的练习也会进入升级版,继续努力!

今天介绍一种有意思的数字,“数根”,什么是数根?

数根(Digital root)是自然数的一种性质,并且,每个自然数都有一个数根。

数根是指将一正整数的各个位数相加,所得的值如果大于等于10的话,则继续将各位数进行相加直到其值小于十为止,则所得的一位数为该数的数根。

比如,123456 各位数相加是21,大于10,2+1=3,则3就是123456 的数根。

今天我们来看一道跟数根有关的题目:

题目描述:

对于输入数字n,编程计算它的数根。

输入:

输入一个数字。

输出:

输出该数的数根。

示例输入:

1234

示例输出:

1

数据范围限制:

n 在1 到2 的31次方之间。

(来源:改编自中学生程序设计,中国计算机学会)

两个注意的地方:

1. 求各个位数的和,每次迭代更新这个数本身,设置一个变量保存每位数相加的和即可。求每一位上的数字,用模10操作就行了。这个过程,我的建议是先调试,看看输出效果怎么样,一步步来。如果实现了各位数相加的功能,再接着往下进行。

2. 判断求出来的各位数是不是大于等于10 ,如果是的话,进行递归操作,即求这个数的各个位上的数字之和,调用该函数本身。记住,递归操作一定要有出口,也即程序函数对自己调用一定要终止的那个步骤。在这里的话,就是判断求出来的各个位数之和是不是小于10 ,是的话,输出这个值,函数结束。

好,就是这样,来看一下代码。

好,就是这样。最后,依旧跟大家分享一个Data Visualization (数据可视化) 的视频,感受数据可视化对大数据理解的便利,这个视频的主题是讲美国人收入的不均衡。来看一下!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180916G0064F00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券