#include<iostream>#include<string.h>using namespace std;int main(void){ char a[1000];//输入字符 数组 int na[1000];//转化为数数组 while(scanf("%s",a)!=0){ if(a[0]= ...
分类:
其他好文 时间:
2019-02-26 01:21:44
阅读次数:
153
1、HDU1013求一个positive integer的digital root,即不停的求数位和,直到数位和为一位数即为数根。 一开始,以为integer嘛,指整型就行吧= =(too young),后来大数自然用字符串解决,然后get到一个新数论点九余数定理; https://en.wikip ...
分类:
其他好文 时间:
2017-12-23 11:53:43
阅读次数:
164
Digital Roots Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) 问题描述正整数的数字根是通过把整数的数字相加得到的。如果结果值是个位数,那么这个数字就是数字根。如果结果值包含 ...
分类:
其他好文 时间:
2017-11-10 00:22:09
阅读次数:
214
2017-09-07 22:02:01 writer:pprp 简单的水题,但是需要对最初的部分进行处理,防止溢出 ...
分类:
其他好文 时间:
2017-09-07 23:00:40
阅读次数:
222
思路: 九余数定理。 http://blog.csdn.net/asd7f7/article/details/53994666 实现: ...
分类:
其他好文 时间:
2017-04-04 19:31:24
阅读次数:
177
#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]== ...
分类:
其他好文 时间:
2017-01-12 11:02:15
阅读次数:
221
该问题的最佳解法是利用数论的9余数定理来计算数根。一个数的数根等于该数的9的余数,若余数为0则结果为9。
问题链接:HDU1013 POJ1519 Digital Roots。入门练习题,用C语言编写程序。
问题简述:输入若干正整数,求其数根,直到输入为0为止。
问题分析:数根是指整数的各个位的数字之和。如果其和为1位整数,则为结果;如果其和为多位整数,则再将各位数字相加,直到其和为...
分类:
其他好文 时间:
2016-08-18 23:31:02
阅读次数:
310
问题链接:HDU1013 Digital Roots。入门练习题,用C语言编写程序。
这个问题是对于输入的n,计算n^n的数根。
先看一下以下式子:
因为:(10*a+b)*(10*a+b)=100*a*a+10*2*a*b+b*b
所以右边式子的数根(中间结果,也是左边式子的数根)为:a*a+2*a*b+b*b=(a+b)*(a+b)
故:对于两位数n,n*n的数根=n的树根×n的树...
分类:
其他好文 时间:
2016-07-29 15:40:07
阅读次数:
245
问题链接:HDU1013 Digital Roots。入门练习题,用C语言编写程序。
数根是指整数的各个位的数字之和。如果其和为1位整数,则为结果;如果其和为多位整数,则再将各位数字相加,直到其和为1位数为止。
这个问题的大陷阱是,没有指出整数是多少位的。即使使用unsignde long long类型,也可能会溢出的。所以,需要先用字符串来处理。
之前的版本(参见:HDU1013 Di...
分类:
其他好文 时间:
2016-07-15 21:51:52
阅读次数:
129
题目:HDU1013 Digital Roots 题目分析:刚开始没注意到输入数字特别大的情况,使用了输入整型数字,并且用了递归,然后就时间超时了。后来看别人的代码才知道这题是个“数论”题,仔细发现便可得result = (n-1)%9+1,而且输入用字符输入。 ...
分类:
其他好文 时间:
2016-05-16 09:23:58
阅读次数:
170