1326:【例7.5】 取余运算(mod)

1326:【例7.5】 取余运算(mod)_第1张图片

#include
using namespace std;
int b,p,k;
int calculate(int p)
{
    int temp;

    if(p==0)//b^0%k=1
        return 1;
        cout<>b>>p>>k;
    int temp=b;
    b%=k;
    cout<1326:【例7.5】 取余运算(mod)_第2张图片


分析:

这题是因为数据规模很大,不能死算

上面编译结果可以理解递归

a.     a*b%k=(a%k)*(b%k)%k 这个知识点用到的是在递归用到的 理解这个代码的递归就会知道

  对于这个2 10 9 来说 是把10分成10 5 4 2 1这几个2的次方相乘起来


你可能感兴趣的:(基础算法-----分治)