nyoj102次方求模

来源:互联网 发布:好听的歌曲推荐 知乎 编辑:程序博客网 时间:2024/05/16 12:06

次方求模

时间限制:1000 ms  |  内存限制:65535 KB
难度:3
描述

求a的b次方对c取余的值

 

输入
第一行输入一个整数n表示测试数据的组数(n<100)
每组测试只有一行,其中有三个正整数a,b,c(1=<a,b,c<=1000000000)
输出
输出a的b次方对c取余之后的结果
样例输入
32 3 53 100 1011 12345 12345
样例输出
31

10481

运用快速幂取模的思想,这个题目比较奇葩的是,一定要用long long 才能过/*#include <stdio.h>int main(){    int n;    long long int ans, a, b, c;    scanf("%d", &n);    while(n--)    {        ans = 1;        scanf("%lld%lld%lld", &a, &b, &c);        while(b != 0)//这里可以作为一个模板使用        {            if(b % 2 != 0)//如果是奇数就会少乘一次a所以要加上            {                ans = (ans * a) % c;            }            a = a * a % c;            b /= 2;        }        printf("%lld\n", ans);    }    return 0;}*//*#include <stdio.h>long long pow_mod(int a, int b, int c){    if(b == 0)        return 1 % c;    if(b == 1)        return a % c;    long long t;    t = pow_mod(a, b / 2, c);    t = t * t % c;    if(b % 2 == 1)        t = t * a % c;    return t;}int main(){    int n;    scanf("%d", &n);    long long a, b, c;    while(n--)    {        scanf("%lld%lld%lld", &a, &b, &c);        printf("%lld\n", pow_mod(a, b, c));    }    return 0;}*/


0 0
原创粉丝点击