快速幂

xiaoxiao2021-02-28  44

int pow(int a, int b) { int r = 1, base = a; while (b) { if (b & 1) r *= base; base *= base; b >>= 1; } return r; }

参考链接:https://baike.baidu.com/item/快速幂/5500243?fr=aladdin

hduoj_1240

#include <stdio.h> int pow(long long a, long long b, long long c) { long long base = a; long long r = 1; while (b) { if (b & 1) r = (r*base) % c; base = (base*base) % c; b >>= 1; } return (int)r; } int main() { int n; long long a, b, c; scanf("%d", &n); while (n--) { scanf("%I64d %I64d %I64d", &a, &b, &c); printf("%d\n", pow(a, b, c)); } return 0; }
转载请注明原文地址: https://www.6miu.com/read-2622359.html

最新回复(0)