ll1111r 2017-12-02 13:20 采纳率: 33.3%
浏览 834

一道简单的幂运算题目,找不到bug,戳进来帮个忙!感谢!

对于每一组数据,输出a的b次方
结果对1,000,000,007取模
Sample Input
1 1
2 2
56 23
Sample Output
1
4
173541855

#include
#include
int APP(int a,int b,int m);
int main()
{

int a,b,m,t;
while(scanf("%d%d",&a,&b)!=EOF)
{ if(a>=b && b<=1000 && b>0)
{
m=1000000007;
t=APP(a,b,m);
printf("%d\n",t);
}

}

}

int APP(int a,int b,int m)
{ int r =1;
a%=m;
while(b>1)
{
if((b&1)==1) r=(r*a)%m;
a=(a*a)%m;
b/=2;
}
return (r*a)%m;

}

这是学校的题目,不知道为什么验证 56 23 这组数据的时候出来的结果不对,
请大神们多多指教,谢谢!

  • 写回答

1条回答 默认 最新

  • ll1111r 2017-12-02 13:20
    关注

    #include
    #include
    int APP(int a,int b,int m);
    int main()
    {

    int a,b,m,t;
    while(scanf("%d%d",&a,&b)!=EOF)
    { if(a>=b && b<=1000 && b>0)
    {
    m=1000000007;
    t=APP(a,b,m);
    printf("%d\n",t);
    }

    }
    

    }

    int APP(int a,int b,int m)
    { int r =1;
    a%=m;
    while(b>1)
    {
    if((b&1)==1) r=(r*a)%m;
    a=(a*a)%m;
    b/=2;
    }
    return (r*a)%m;

    }

    重贴一遍代码,比较好看

    评论

报告相同问题?

悬赏问题

  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100