Digital Roots
2016-02-27 20:57
267 查看
Digital Roots
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 65092 Accepted Submission(s): 20292
[align=left]Problem Description[/align]
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.
[align=left]Input[/align]
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.
[align=left]Output[/align]
For each integer in the input, output its digital root on a separate line of the output.
[align=left]Sample Input[/align]
24
39
0
[align=left]Sample Output[/align]
6 3
本题我刚开始没有考虑输入的整数无穷大情况,就固定了输入数据类型,后来改为string,但是求得和还是可能无穷大,这一点没考虑但是程序居然通过了,汗
#include<iostream>
#include<string>
using namespace std;
int getRootInt(int value)
{
int sum=0;
int tempValue=value;
while(tempValue!=0)
{
sum+=tempValue%10;
tempValue=tempValue/10;
}
if(sum>9)
{
sum=getRootInt(sum);
}
return sum;
}
int getRoot(string value)
{
int sum=0;
for(int i=0;i<value.length();i++)
{
sum+=value[i]-'0';
}
return getRootInt(sum);
}
int main()
{
string value="";//不能定义固定类型可能无穷大
while(cin>>value)
{
if(value=="0")break;
int sum=0;
sum=getRoot(value);
cout<<sum<<endl;
}
return 0;
}
相关文章推荐
- Android开发中可能遇到的坑
- [BZOJ 4196][Noi2015]软件包管理器
- 修改Ubuntu的默认启动项
- C语言实现双向非循环链表的逆序打印
- 安装clustalw-2.1
- Jquery对Cookie的操作
- delphi的TThread.CreateAnonymousThread导致界面卡死
- Leetcode ☞ 242. Valid Anagram ☆
- Codeforces 633 C Spy Syndrome 2 字典树
- [android] 测试的相关概念
- Xamarin Dropdown menu
- CSS3 入门2
- python实现高精度减法
- java创建对象的4中方法
- 【jsoncpp】json_value.cpp : fatal error C1083: 无法打开编译器生成的文件:No such file or directory
- 机房重构模板方法
- JQuery Uploadify 基于JSP的无刷新上传实例
- 软件工程文档总结
- Android ContentProvider源码分析
- python实现高精度加法