牛客網———求root(N,k)
阿新 • • 發佈:2018-12-06
題目描述
N<k時,root(N,k) = N,否則,root(N,k) = root(N',k)。N'為N的k進製表示的各位數字之和。輸入x,y,k,輸出root(x^y,k)的值 (這裡^為乘方,不是異或),2=<k<=16,0<x,y<2000000000,有一半的測試點裡 x^y 會溢位int的範圍(>=2000000000)輸入描述:
每組測試資料包括一行,x(0<x<2000000000), y(0<y<2000000000), k(2<=k<=16)
輸出描述:
輸入可能有多組資料,對於每一組資料,root(x^y, k)的值
輸入
4 4 10
輸出
4
連結:https://www.nowcoder.com/questionTerminal/9324a1458c564c4b9c4bfc3867a2aa66 來源:牛客網 #include <stdio.h> int main(){ for(long x,y,k,r;~scanf("%ld%ld%ld",&x,&y,&k);){ for(r=1,k-=1;y;r=(y&1?r*x%k:r),x=x*x%k,y>>=1); printf("%ld\n",r?r:k); } return 0; }