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,将24的各个位上的数字“分离”,分别得到数字 2 和 4,而2+4=6;

因为 6 < 10,所以就认为6是数字24的“数根”;

而对于数字 39 , 将39的各个位上的数字“分离”,分别得到数字 3 和 9,而3+9=12,且12>10;

所以依据规则再对 12 进行相应的运算,最后得到数字3,而3<10,所以就认为3是数字39的“数根”。

通过运算可以发现任何一个数的“数根”都是一个取值范围在 1 ~ 9之间的正整数,

且任何一个正整数都只有唯一的一个“数根”与其相对应。

题目要求数字 n^n 的“数根”

解题思路:

九余数定理

一个数对九取余后的结果称为九余数。

一个数的各位数字之和想加后得到的<10的数字称为这个数的九余数(如果相加结果大于9,则继续各位相加)

代码如下:
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int main()
{
char a[1010];
int i,j,s,l;
while(~scanf("%s",&a)&&a[0]!='0')
{
l=strlen(a);
s=0;
for(i=0;i<l;i++)
{
s=s+a[i]-'0';
}
s=s%9;
if(s==0)
s=9;
printf("%d\n",s);
}
return 0;
}

一个数对九取余,得到的数称之为九余数;
一个数的九余数等于它的各个数位上的数之和的九余数!

最新文章

  1. 【JavaScript】javascript中伪协议(javascript:)使用探讨
  2. 如何在github上下载单个文件夹?
  3. 【读书笔记】--SQL基础概念复习
  4. java内存溢出分析(一)
  5. android基础开发之RecycleView(1)---基本使用方式
  6. 【转】关于Android资源文件中出现百分号的问题
  7. php 文本框里面显示数据库调出来的资料
  8. linux 进程通信
  9. Eclipse 一直不停 building workspace完美解决总结
  10. PS 图像调整算法——色调分离
  11. 分享一些 Kafka 消费数据的小经验
  12. Codeforces Round #129 (Div. 1)E. Little Elephant and Strings
  13. FPGA做正则匹配和网络安全,究竟有多大的优势?
  14. tomcat允许跨域请求:
  15. MapReduce运行原理和过程
  16. 在android程序中打开另一个应用程序
  17. 雷林鹏分享:Ruby 循环
  18. WeX5入门之欢乐捕鱼打包
  19. linux中,查看某个进程打开的文件数?
  20. Listener 介绍

热门文章

  1. android中sharedPreferences的笔记
  2. Javascript基础学习(1)_类型、值和变量
  3. 如何下载到最新的版本的Oracle Database
  4. SVN库迁移过程总结
  5. 第一章JSP基础语法
  6. iOS8上本地通知接收不到的问题
  7. 1 Yoga3 系统装机总结.
  8. JavaWeb学习----JSP简介及入门(JSP结构及JSP处理)
  9. 学习protobuf
  10. Linux系统工程师学习方法