杭电OJ2035
这题数据范围太大很容易超过longlong类型的表示范围,所以在每次处理前取前三位即可
#include<cstdio>
using namespace std;
int main(){
int n,m;
while(scanf("%d %d",&n,&m)!=EOF){
if(n==0&&m==0){
break;
}
long long temp =n%1000;
for(int i = 0 ;i<m-1;i++){
temp =temp%1000;
temp *= (n%1000);
}
if(m==0){
printf("1");
}else{
printf("%d",(temp%1000/100)*100+(temp%100/10)*10+temp%10);
}
printf("\n");
}
return 0;
}
博客主要讨论了杭电在线评测系统OJ2035中遇到的大数运算问题,由于数据范围过大,可能导致long long类型溢出。作者提出解决方案,即在每次运算前取数的前三位,有效避免了溢出。通过示例代码展示了如何进行优化,适用于处理大数运算的场景。
658

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



