Hdu1163 Eddy's digitai Roots(九余数定理)

题目大意:

 

 给定一个正整数,根据一定的规则求出该数的“数根”,其规则如下:

        例如给定 数字 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,则继续各位相加)

 

代码如下:

 1 #include <iostream>
 2 #include <string>
 3 #include<algorithm>
 4 using namespace std;
 5 
 6 int main(){
 7     int a,c,count;
 8     cin>>a;
 9 
10     while(a>=10){
11         c=a;count=0;
12         while(c!=0){
13             count+=c%10;
14             c=c/10;
15         }
16         a=count;
17     }
18     
19 
20     cout<<a<<endl;
21 
22     return 0;
23 }
View Code

 

 

posted @ 2015-09-27 15:28  Wei_java  阅读(304)  评论(0编辑  收藏  举报