博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDOJ-1013
阅读量:4993 次
发布时间:2019-06-12

本文共 1988 字,大约阅读时间需要 6 分钟。

Digital Roots

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 67912    Accepted Submission(s): 21226

Problem Description
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

本题题意很简单,给你一个非负整数,要求整数的每一位相加的和为一位整数,如果不是,则对得到的和继续每一位相加操作,直至其和为一位整数。

题目中举出了两个例子,当非负整数位24时,第一次处理相加和为6,是一位整数,所以输出6;当非负整数为39时,第一次处理和为12,故再处理一次,各位相加和为3,符合输出。

我的方法是写一个函数Do()来实现每一次处理直至最后的和为一位数。

附AC代码:

1 #include
2 #include
3 #include
4 #include
5 using namespace std; 6 7 char a[1010]; 8 9 int Do(int sum){
//每位相加返回和 10 int ans=0;11 while(sum>=10){12 ans+=sum%10;13 sum/=10;14 }15 ans+=sum;16 return ans;17 }18 19 int main(){20 while(gets(a)&&a[0]!='0'){
//输入待处理数据 21 int sum=0;22 for(int i=0;i
=10){
//当最后的值大于两位,再处理 26 sum=Do(sum);27 }28 printf("%d\n",sum);29 }30 return 0;31 }

 

转载于:https://www.cnblogs.com/Kiven5197/p/5487304.html

你可能感兴趣的文章
SVGImageView
查看>>
Android UI 优化 使用<include/>和 <merge />标签
查看>>
linux命令--使用fsck修复文件系统
查看>>
洛谷 P2324 [SCOI2005]骑士精神
查看>>
leetcode(64)最小路径和
查看>>
Select文字居右显示
查看>>
mycat操作MySQL第一篇:全局表
查看>>
MySQL数据库表分区
查看>>
python多个装饰器的执行顺序
查看>>
岗顶-一图一世界
查看>>
一步步构造自己的vue2.0+webpack环境
查看>>
分页类
查看>>
Python装饰器的个人小理解
查看>>
为什么百万医疗险越来越多,到底选哪款?
查看>>
如何检测 51单片机IO口的下降沿
查看>>
扫描识别控件Dynamic .NET TWAIN使用教程:如何将事件添加到应用程序中
查看>>
创建和修改主键 (SQL)
查看>>
2018-2019 ICPC, NEERC, Southern Subregional Contest(训练记录)
查看>>
20145233 《信息安全系统设计基础》第7周学习总结
查看>>
linux设备驱动程序第3版学习笔记(例程2--hellop.c)
查看>>