取模运算

【问题描述】

    定义一个“取模”运算:对于正整数a和p,a%p表示a除以p的余数,又称“模”运算。

    现在,输入三个正整数b、p、k的值。

【输入格式】

  一行三个正整数,表示b、p、k的值。

【输出格式】

一行一个整数表示b^p%k的值。

【输入样例】

2 10 9

【输出样例】

7

下面是代码

 1 #include <iostream>
 2 using namespace std;
 3 int pow_mod (int b, int p, int k) 
 4 {
 5     if(p==0) return 1%k; //边界值 
 6     if(p==1) return b%k; //边界值
 7     int y=pow_mod(b, p/2, k); //转化乘方 
 8     if(p%2==0) return (y*y)%k; //如果他除以二是偶数 return (y*y)%k 
 9     else return (((y*y)%k)*b)%k; //如果他除以二是奇数 return (y*y)%k 
10 }                       
11 int main()
12 {
13     int b,p,k;
14     cin>>b>>p>>k;
15     b=b%k;
16     cout<<pow_mod(b, p, k);
17 }

 

posted @ 2018-07-24 15:47  zqm博客  阅读(369)  评论(0)    收藏  举报