Digital Roots
Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)
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
Sample Output
虽然是一道水题,但是不知道规律之前还是很悲催的,所以在这里记录一下代码和方法!已备不时之需!
/**********
结果:超时!
***********
#include<stdio.h>
#include<stdlib.h>
int main()
{
char buff[100];
int num,i=1;
while(scanf("%d",&num)!=EOF)
{
if(num==0) return 0;
while(1)
{
itoa(num,buff,10);
for(i=0,num=0;buff[i]!='\0';i++)//i是buff的长度
num=num+buff[i]-'1'+1;
if(i==1)
{
printf("%d\n",num);
break;
}
}
}
return 0;
}
/**************************
/**************************
问题:wa!原因:测试数据太大!
**************************************/
/*************************************
#include<stdio.h>
int main()
{
int num;
while(scanf("%d",&num)!=EOF)
{
if(num==0) return 0;
printf("%d\n",num%9?9:num%9);
}
return 0;
}
***************************************/
//合九法:一个数的数字根等于这个数模9,也等于各个位所有数之和模9。
#include<stdio.h>
#include<string.h>
int main()
{
char num[1000];
int len,sum,i;
while(scanf("%s",&num)!=EOF)
{
len=strlen(num);
if(len==1 && num[0]=='0') return 0;
for(sum=0,i=0;i<len;i++)
{
sum=sum+num[i]-'0';
}
printf("%d\n",sum%9?sum%9:9);//合九法;一个数的数字根等于这个数模9,也等于各个位所有数之和模9
}
return 0;
}
分享到:
相关推荐
本人搜集的资源,经本人亲测,可用性强!!!适合大家参考...
这是一个简单的入门ACM问题...用C语言写的,供初学者参考!
课程资源 杭电OJ1000-1099答案 ,仅供参考...
杭电oj1000题解题报告
杭电OJ题目分类的叙述,可以方便去学习去做。
杭电ACM2000-2011题已提交的代码!保证正确!
http://acm.hdu.edu.cn/ 杭电 1871 1872 1873 1874 1875 1877 1878 1879 1880 1881 1894 1895 1939 2000 acm的AC解题报告
杭电OJ(1000-1099) AC 代码
这是HDUOJ上面的140道题目的答案,其中大部分都是简单题,有些太简单的就没有收集进去,代码为C/C++,全都AC了的,其中有些有具体的说明是怎么做的,例如博弈论那些
杭电OJ 2028代码 the rosolve of the hdu 2028
编译原理OJ-语义分析及目标代码生成c++源码.zip编译原理OJ-语义分析及目标代码生成c++源码.zip编译原理OJ-语义分析及目标代码生成c++源码.zip编译原理OJ-语义分析及目标代码生成c++源码.zip编译原理OJ-语义分析及...
本资源主要提供了杭电oj题目分类和自测状况两大类 可实现随机选题等功能.
杭电OJ部分威士忌的代码 杭电OJ部分威士忌的代码杭电OJ部分威士忌的代码
杭电acm1201-1250 详细答案 大家好好看看格式吧
杭电oj上的一些疑问,适用于初学者,可以解答一些疑问 都是一些水题
杭电oj 1047习题
杭电oj分类
杭州电子科技大学 oj离线版