题目链接: 点击打开链接
The digital root of a positive integer is found by summing the digits of the integer. If the resulting value is a single digit then that digit is the digital root. If the resulting value contains two or more digits, those digits are summed and the process is repeated. This is continued as long as necessary to obtain a single digit.

For example, consider the positive integer 24. Adding the 2 and the 4 yields a value of 6. Since 6 is a single digit, 6 is the digital root of 24. Now consider the positive integer 39. Adding the 3 and the 9 yields 12. Since 12 is not a single digit, the process must be repeated. Adding the 1 and the 2 yeilds 3, a single digit and also the digital root of 39.


Input The input file will contain a list of positive integers, one per line. The end of the input will be indicated by an integer value of zero.
Output For each integer in the input, output its digital root on a separate line of the output.

Sample Input

24
39
0

Sample Output

6
3

题意:给你一个数,这个数a可能非常大,把数a的各个位上的数字加起来得到b,若b小于10则输出b,否则继续将数b的各个位加起来直到加起来的数小于10再将其输出。

思想方法:合九法,将一个数的各个位上的数字加起来得到另一个数字,再将另一个数字的各个位上的数字加起来,直到加起来的数字的位数为一位,那么最终的这个数就是原数的数字根。数字根等于将一个数的各个位上的数字加起来取余9.

模拟代码

#include<stdio.h>
#include<string.h>
int f(int x)
{int s=0;while(x){s+=x%10;x/=10;}return s;
}
int main()
{char a[10005];while(~scanf("%s",a)){if(a[0]=='0')break;int ans=0,l=strlen(a);for(int i=0;i<l;i++)ans+=a[i]-'0';if(ans<=9)printf("%d\n",ans);else{int b=ans;while(b>9)b=f(b);printf("%d\n",b);}}
}

利用合九法解:

#include<stdio.h>
#include<string.h>
int main()
{char  s[1000];int len,sum,i;while(scanf("%s",&s)!=EOF){len=strlen(s);if(s[0]=='0') return 0;for(sum=0,i=0;i<len;i++)sum+=s[i]-'0';printf("%d\n",sum%9?sum%9:9);}
}

思考:解题思想类似进制转换思想,但取的是进制转换的后的最后一位数字就是答案。唯一一点不同的是,当整除是“余数”不应该写0,而应该是转换的进制数,例如:18%9=0;此时答案应该是9而不是0.

扩展:“弃九法”也叫做弃九验算法,利用这种方法可以验算加、减计算的结果是否错误。把一个数的各位数字相加,直到和是一个一位数(和是9,要减去9得0),这个数就叫做原来数的弃九数。

hud 1013 求一个数的数字根(合九法||模拟)相关推荐

  1. python求两个数的最大公约数穷举法_五十九、如何求N个数的最大公约数和最小公倍数...

    「@Author:Runsen」 ❝ 编程的本质来源于算法,而算法的本质来源于数学,编程只不过将数学题进行代码化.「---- Runsen」 ❞ 上次介绍了短除法的因式分解,下面正式进入求解:「两个及 ...

  2. python求两个数的最大公约数穷举法_C++求最大公约数四种方法解析

    C++求最大公约数的四种方法思路,供大家参考,具体内容如下 将最近学的求最大公约数的四种方法总结如下: 第一种:穷举法之一 解释:拿其中一个数出来,用一个临时变量(tem)保存,每次都把那两个数除以这 ...

  3. python求两个数的最大公约数穷举法_求两个数字的最大公约数-Python实现,三种方法效率比较,包含质数打印质数的方法...

    #coding:utf-8 importtime#辗转相除法: defcommonDivisor1(num1,num2):if num1 temp=num1 num1=num2 num2=tempif ...

  4. Java求两个数的最大公约数及最小公倍数、求多个数的最大公约数及最小公倍数

    今天参加腾讯笔试,做编程题时在最小公倍数.最大公约数这些这么简单的知识点上卡壳了,自信心受到强烈的打击,下来后猛复习了这方面的相关编程知识. 有以下几个关键点: 1.任意正整数的最大公约数.最小公倍数 ...

  5. sum_series() 求一列数的指定个数的数和(5个数字的和)

    1 #include <stdio.h> 2 #include <stdarg.h> 3 /*用sum_series() 求一列数的指定个数的数和(5个数字的和)*/ 4 do ...

  6. python练习题(python之“求一个数的阶乘并求结果中从后向前数第一个不为0(零)的数” 等)

    实验环境:python2.7 题目1:python之"求一个数的阶乘并求结果中从后向前数第一个不为0(零)的数" 程序: import math def factorial(n): ...

  7. 对tf.reduce_mean API的理解就是求平均值,reduce指的是一串数据求平均值后维数降低了,可不是吗,一串向量变成了一个数,维数自然降低了

    tf.math.reduce_mean(input_tensor, axis=None, keepdims=False, name=None ) 对tf.reduce_mean的理解就是求平均值,re ...

  8. python求两数最大公因数_『用python求俩个数的最大公约数和最小公倍数』

    python:用递归的方法编写一个函数gys(x,y),计算两个数字的最大公约数. (提示,大的 def gys(x,y): a,b=max(x,y),min(x,y) c=a%b if c==0: ...

  9. 程序员数学基础【四、取模应用-判断奇偶数、判断素数、求两个数的最大公约数、水仙花数】(Python版本)

    测试使用语言:[Python] 由于此类语言入门非常容易,哪怕初中生亦可以,并且本科/研究生写论文.做实验多数所用语言都是[Python]故而选择此语言. 代码运行平台:[win10 x64] 代码环 ...

最新文章

  1. PHP获取当前页面的URL
  2. jsp文件的请求是如何被服务器的JSP容器转换成静态网页的
  3. perl开发工具大全
  4. php冒泡程序讲解,PHP冒泡排序程序代码与源代码
  5. 【java】我工作三年了,该懂并发了!
  6. 公有云退款流程及政策--退款规则及退款流程(阿里云 华为云) --2020-09-03
  7. 【跃迁之路】【479天】程序员高效学习方法论探索系列(实验阶段236-2018.05.30)...
  8. redis php 性能测试工具,Php-Redis安装测试笔记
  9. apache做yum源_svn+apache的yum源安装方式
  10. java学习总结及心得体会
  11. BeanUtils与PropertyUtils的常用方法
  12. itunes如何备份手机所有数据
  13. X86 android r7 z3735,安卓工业平板电脑android系统下各大主流CPU性能大对比分析
  14. kafka 0.10.0 producer java代码实现
  15. 自称菜鸟的二本大龄程序员居然拿到百度offer,还有嘉实offer(百度三面面经)
  16. CCF python 门禁系统
  17. 2019年杭电计算机学院考研人数,杭州电子科技大学2019年考研复试分数线已公布...
  18. Rocky虚拟机初始化安装(以8.5版本minimum安装为例)
  19. 中国地质大学计算机学院迎新群,地大迎新志愿者标兵
  20. python实现微信消息群发和微信自动回复

热门文章

  1. (摘录)MD5算法研究与破解
  2. Android Programming The Big Nerd Ranch Guide,Second Edition第十六章使用相机Intent部分的改进
  3. 1200兆路由器网速_1200兆路由器网速_300兆宽带只有50兆?原来问题在这里
  4. redis的使用总结
  5. Word邮件合并的应用
  6. 区块链知识整理之系统架构及各层功能
  7. 糯米制成环保烟花,泰国地标暹罗天地跨年倒计时将举办大型烟火秀
  8. SQL语句查询今天、昨天、前天的记录
  9. 智慧园区物业可视化大屏
  10. 在线XXEncode加密/解密(XXEncode编码/解码)工具