如何用计算机算幂函数,怎样用计算器算幂指数

211d67a92d1ff2d4a44ff52975fcc995.png

计算 a^b  mod c 的计算函数

int mod(int a,int b,int c)

{

  //求a^b mod c

  //******************************

  //x = A^B mod c

  //******************************

 int x,y;

 if(a==0) return 0;

 if(b==0) return 1;

 x=1;

 y=a%c;

 while(b)

 {

  if(b%2) x=(x*y)%c;

  b>>=1;

  y=(y*y)%c;

 }

 return x;

}//  算法导论中的改编算法

算法导论中的原版算法

int mod1(int a,int b,int n)

{

 /*

 计算a^b % n 的情况  见算法导论 page 539

 */

 int i,c;

 __int64 d;

 int bit[100];

 c=0;d=1;i=0;

 while(b>0)  // 将 b 表示为二进制数的形式

   {bit[i]=b%2;b/=2;i++;}

 for(int j=i-1;j>=0;j--) // 主要过程

 {

  c=2*c;d=(d*d)%n;

  if(bit[j]==1) {c=c+1;d=(d*a)%n;}

 }

 return d;

}

检验是否错误 进入pku 2499

◆◆

评论读取中....

请登录后再发表评论!

◆◆

修改失败,请稍后尝试

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值