首页 > 其他 > 详细

hdu2035 人见人爱A^B题解

时间:2020-04-01 19:18:58      阅读:46      评论:0      收藏:0      [点我收藏+]

技术分享图片

思路一:这个题可以直接暴力做:

 1 #include<iostream>
 2 #include<cstdio>
 3 int main()
 4 {
 5     int a,b;
 6     while(scanf("%d%d",&a,&b),a,b)
 7     {
 8         int c=1;
 9         for(int i=1;i<=b;i++)
10         {
11             c=(c*a)%1000;
12         }
13         printf("%d\n",c);
14     }
15     return 0;
16 }

多少次方需要乘几次a直接上循环,边乘边模1000。

思路二:抱着学习快速幂的心理,用快速幂的思路做了一下。

快速幂的详细解法看这个:快速幂

快速幂的解法代码如下:

(本题比较特殊,需用int型定义才能AC,否则和答案不一样)

 1 #include<iostream>
 2 #include<cstdio>
 3 using namespace std;
 4 int FastPower(int a,int b)
 5 {
 6     int ans=1;
 7     while(b!=0)
 8     {
 9         if(b%2)
10         {
11             ans=ans*a%1000;
12         }
13         a=a*a%1000;
14         b/=2;
15     }
16     return ans;
17 }
18 int main()
19 {
20     int a,b;
21     while(scanf("%d%d",&a,&b),a,b)
22     {
23         int ans;
24         ans=FastPower(a,b);
25         cout<<ans%1000<<endl;
26     }
27     return 0;
28 }

 

hdu2035 人见人爱A^B题解

原文:https://www.cnblogs.com/theshorekind/p/12613800.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!