一、题目
2024:【例4.10】末两位数
时间限制: 1000 ms 内存限制: 65536 KB
【题目描述】
求n个1992的乘积的末两位数是多少?
【输入】
输入n。
【输出】
如题述的末两位数。
【输入样例】
3
【输出样例】
88
【提示】
【数据范围】
对于所有数据:n<2000。
二、思路
最简单的思路肯定是直接求1992的n次方然后取后两位,但是当n次方过大时肯定会溢出。因为题目要求末尾两位数,所以我们只需要关注最后两位数即可,剩下的位数是多少对于我们都没有影响,所以每次进行模100保留最后两位数就可以。
三、代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
int s=1;
for(int i=1;i<=n;i++)
{
s=s*92;
s=s%100;
}
cout<<s;
return 0;
}
本文介绍了一种解决1992的n次方取末两位数问题的高效算法,通过取模100实现,避免了大数溢出。适合处理大规模乘积的尾数问题,适用于编程竞赛或数学趣味问题。
524

被折叠的 条评论
为什么被折叠?



