当前位置: 首页> 科技> 名企 > 广州疫情直播发布会_山西疫情防控最新规定_泸州网站seo_seo软件工具

广州疫情直播发布会_山西疫情防控最新规定_泸州网站seo_seo软件工具

时间:2025/7/31 6:39:53来源:https://blog.csdn.net/hnjzsyjyj/article/details/146301404 浏览次数:3次
广州疫情直播发布会_山西疫情防控最新规定_泸州网站seo_seo软件工具

【题目来源】
https://www.luogu.com.cn/problem/B2075

【题目描述】
幂 a^b 的末 3 位数是多少?

【输入格式】
两个正整数 a,b。1≤a≤100,1≤b≤10000。

【输出格式】
从高位到低位输出幂的末三位数字,中间无分隔符。若幂本身不足三位,在前面补零。

【输入样例1】
2 3

【输出样例1】
008

【输入样例2】
7 2011

【输出样例2】
743

【算法分析】
● 由于 1≤a≤100,1≤b≤10000,如果硬算 a^b 的话,最大可以达到 100^10000,会产生
溢出,显然是不可行的。 解决方法一是利用公式 (a*b)%p=(a%p*b%p)%p 边取模边运算;方法二是直接用快速幂求解。其本质也是利用了方法一中的公式。

● printf() 参数:%0nd 和 %nd 的用法_%0nd:https://blog.csdn.net/hnjzsyjyj/article/details/143719009
%nd → 表示输出的整数宽度至少为 n 位,不足 n 位
左填充空格。位数大于 n 则输出实际位数。
%0nd → 表示输出的整数宽度至少为 n 位,不足 n 位
左填充 0。位数大于 n 则输出实际位数。

【算法代码:快速幂】

#include <bits/stdc++.h>
using namespace std;const int MOD=1000;int fastPow(int a,int b) {int ans=1;while(b) {if(b & 1) ans=ans*a%MOD;a=a*a%MOD;b>>=1;}return ans%MOD;
}int main() {int a,b,t;scanf("%d%d",&a,&b);t=fastPow(a,b);if(t>=100) printf("%d",t);else if(t<100 && t>=10) printf("0%d",t);else printf("00%d",t);return 0;
}/*
in:7 2011
out:743
*/


 【算法代码:(a*b)%p=(a%p*b%p)%p

#include <bits/stdc++.h>
using namespace std;const int MOD=1000;int main() {int a,b,t=1;scanf("%d%d",&a,&b);while(b--) {t*=a;t%=MOD;}if(t>=100) printf("%d",t);else if(t<100 && t>=10) printf("0%d",t);else printf("00%d",t);return 0;
}/*
in:7 2011
out:743
*/



【参考文献】
https://blog.csdn.net/hnjzsyjyj/article/details/143168167
https://blog.csdn.net/hnjzsyjyj/article/details/143135845
https://blog.csdn.net/hnjzsyjyj/article/details/146273704
https://blog.csdn.net/hnjzsyjyj/article/details/146285970

https://blog.csdn.net/m0_58373406/article/details/136348089


 

关键字:广州疫情直播发布会_山西疫情防控最新规定_泸州网站seo_seo软件工具

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: