hdu1163

来源:互联网 发布:网络电缆是什么样的 编辑:程序博客网 时间:2024/05/22 15:32

题目链接:Eddy's digital Roots

给出一个数n,求n^n的数根,数根即各位数字之和,如66-->6+6=12-->1+2=3,则66的树根是3。


纯数学解法:

九余数定理:这个数字根等于原数除以9的余数,如66%9=3

n^n直接计算可能溢出,(a*b)%c=((a%c)*(b%c))%c

#include <iostream>#include <stdio.h>using namespace std;int main(){    int n;    while(scanf("%d",&n)!=EOF&&n){        int ans=1;        for(int i=0;i<n;i++){            ans=ans*n%9;        }        if(ans==0) printf("9\n");        else printf("%d\n",ans);    }    return 0;}


0 0