首页 > 代码库 > Hdu-1163 Eddy's digital Roots(九余数定理)

Hdu-1163 Eddy's digital Roots(九余数定理)

题意:对于一个数,只要它不是单个数,就把它各位的数相加,直到成为单个数。

九余数定理

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

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

因为数据挺大的,不能暴力。所以可以边乘边取余。很像快速幂。

 1 #include<iostream>
 2 #include<algorithm>
 3 using namespace std;
 4 
 5 int main(){
 6     int n;
 7     while(cin >> n&&n){
 8         int temp=1;
 9         for(int i=1;i<=n;i++)
10         temp=temp*n%9;
11         if(temp==0) cout << 9 << endl;
12         else cout << temp << endl;
13     }
14     return 0;
15 }

 

Hdu-1163 Eddy's digital Roots(九余数定理)