zoukankan      html  css  js  c++  java
  • nyoj 102 次方求模

    次方求模

    时间限制:1000 ms  |  内存限制:65535 KB

    难度:3

    描述

    a的b次方对c取余的值

     

    输入

    第一行输入一个整数n表示测试数据的组数(n<100)
    每组测试只有一行,其中有三个正整数a,b,c(1=<a,b,c<=1000000000)

    输出

    输出a的b次方对c取余之后的结果

    样例输入

    3

    2 3 5

    3 100 10

    11 12345 12345

    样例输出

    3

    1

    10481

    #include<stdio.h>
    #include<stdlib.h>
    //快速幂算法,数论二分 
    long long powermod(int a,int b, int c) //不用longlong就报错,题目中那个取值范围不就在2的31次方内
    {
        long long t;
        if(b==0)  return 1%c;
        if(b==1)  return a%c;
        t=powermod(a,b/2,c);//递归调用,采用二分递归算法,,注意这里n/2会带来奇偶性问题
        t=t*t%c;//二分,乘上另一半再求模
        if(b&1)  t=t*a%c;//n是奇数,因为n/2还少乘了一次a
        return t;
    }
    int main()
    {
        int n;
        long long a,b,c;
        scanf("%d",&n);
        while(n--)
        {
            scanf("%lld%lld%lld",&a,&b,&c);
            printf("%lld
    ",powermod(a,b,c));
        }
        return 0;
     }
    

      

  • 相关阅读:
    AcWing 276. I-区域
    学习笔记:可持久化线段树(主席树):静态 + 动态
    NOIP2016提高组 天天爱跑步
    AcWing 195. 骑士精神
    标准文档流
    css 盒模型
    css 继承性和层叠性
    css 选择器
    css 引入方式
    html body中的标签2
  • 原文地址:https://www.cnblogs.com/zhangliu/p/7052689.html
Copyright © 2011-2022 走看看