一个简单,常用的算法 123456789101112131415161718192021 #include <cstdlib>#include <cstring>int (){ int n, a; int ans = 1; scanf("%d%d", &a, &n); while(n){ if(n & 1){ //看n的二进制的最后一位是否为1 ans = ans * a; } a *= a; n = n >> 1; } printf("%dn", ans); return 0;}//例如: 7= 1 1 1 如果&1后等于1,说明有1,则ans = ans * a,如果为0,则说明不是1,则继续a = a * a a^4 a^2 a^1 赞微海报分享
近期评论