HDOJ 1163 Eddy's digital Roots(九余数定理的应用)

简介: Problem Description The digital root of a positive integer is found by summing the digits of the integer.

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.

The Eddy’s easy problem is that : give you the n,want you to find the n^n’s digital Roots.

Input
The input file will contain a list of positive integers n, one per line. The end of the input will be indicated by an integer value of zero. Notice:For each integer in the input n(n<10000).

Output
Output n^n’s digital root on a separate line of the output.

Sample Input
2
4
0

Sample Output
4
4

题意:输入一个数n,求n的n次方的数根。
数根:即某数字的每一位上的数字之和,如果和大于等于10,重复每一位上的数字之和,直到每一位上的数字之和是个位数。则这个个位数就是这个数字的数根。

九余数定理:
一个数对九取余,得到的数称之为九余数;
一个数的九余数 等于 它的各个数位上的数之和的九余数!
例:
5^5=3125
3+1+2+5=11
1+1=2(digital Roots)
3125%9=2;
一个数对9取余就等于它的个位数字之和对9取余就等于数根对9取余。

import java.util.Scanner;

public class Main{
    public static void main(String[] args) {
        Scanner sc= new Scanner(System.in);
        while(sc.hasNext()){
            int n = sc.nextInt();
            if(n==0){
                return ;
            }
            int m = 1;
            for(int i=0;i<n;i++){
                m=(m*n)%9;
            }
            if(m==0){
                System.out.println(9);
            }else{
                System.out.println(m);
            }
        }
    }
}
AI 代码解读
相关文章
The kth great number(小根堆思想,模板题)
The kth great number(小根堆思想,模板题)
84 0
German Collegiate Programming Contest 2019 H . Historical Maths (二分 大数)
German Collegiate Programming Contest 2019 H . Historical Maths (二分 大数)
105 0
German Collegiate Programming Contest 2019 H . Historical Maths (二分 大数)
AtCoder Beginner Contest 216 G - 01Sequence (并查集 贪心 树状数组 差分约束)
AtCoder Beginner Contest 216 G - 01Sequence (并查集 贪心 树状数组 差分约束)
174 0
AtCoder Beginner Contest 203(Sponsored by Panasonic) D.Pond(二分+二维前缀和)
AtCoder Beginner Contest 203(Sponsored by Panasonic) D.Pond(二分+二维前缀和)
109 0
[Atcoder ARC124] XOR Matching 2-小思维 | 暴力
题意: 给出n,两个数列a[1] -> a[n],b[1] -> b[n] 问有多少个x,可以使得在我们任意一种方式排列b[]之后,有a[i] ^ b[i] == x (1 <= i <= n) 思路: 首先我们可以确定所有的答案一定在a[1] ^ b[i] (1 <= i <= n)之内,所以我们只需要将这些个x的解空间单独放到数组c[]里,然后遍历x的解空间c[],将c[i] ^ a[i]的结果记录在d[]里面,然后判断b[],d[]是否完全相同即可,如果完全相同,就可以记录答案,注意最终答案要进行去重
132 0
[Atcoder ARC124] XOR Matching 2-小思维 | 暴力
AtCoder Beginner Contest 203 Pond(二分+二维前缀和)
大体思路: 二分,将原矩阵根据二分的值变成01矩阵,如果元素值> val 就变为1,否则0 对于k * k 的矩阵,统计区域内元素之和,如果 sum < ⌊k2 / 2⌋ + 1,意味着当前k * k矩阵的中位数小于x,而x是我们的答案(最小中位数), ①sum < ⌊k2 / 2⌋ + 1 情况下x取得太大,r = mid ②反之,x还可能取更小的,l = mid 但是需要注意下l的初始值,当取0 or 1的时候是会wa掉的:
279 0
AtCoder Beginner Contest 203 Pond(二分+二维前缀和)
HDOJ 1163 Eddy's digital Roots(九余数定理的应用)
HDOJ 1163 Eddy's digital Roots(九余数定理的应用)
124 0
HDOJ 1013题Digital Roots 大数,9余数定理
HDOJ 1013题Digital Roots 大数,9余数定理
163 0

热门文章

最新文章

下一篇
oss创建bucket
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等