社区讨论
0溢事件
学术版参与者 2已保存回复 6
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @mjfj7ajg
- 此快照首次捕获于
- 2025/12/21 17:35 2 个月前
- 此快照最后确认于
- 2025/12/21 17:46 2 个月前
如题,巨弱在P1952(n进制高精度加法)中写出了如下代码
CPP#include<iostream>
#include<string>
using namespace std;
string a,b;
int n,m,A[210],B[210],C[210];
int ltn(char c){
if(c>='0'&&c<='9')return c-'0';
return c-87;
}
char ntl(int c){
char k;
if(c>=0&&c<=9){
k=c+'0';
return k;
}else{
k=c+87;
return k;
}
}
int main(){
cin>>n>>a>>b;
int la=a.size(),lb=b.size();
for(int i=0;i<la;i++)A[210-i]=ltn(a[la-1-i]);
for(int i=0;i<lb;i++)B[210-i]=ltn(b[lb-1-i]);
for(int i=0;i<max(la,lb);i++){
C[210-i]=A[210-i]+B[210-i]+m;
m=C[210-i]/n;
C[210-i]%=n;
}
if(m>0)cout<<ntl(m);
for(int i=211-max(la,lb);i<=210;i++)cout<<ntl(C[i]);
return 0;
}
交上去只有10分,后来发现是余数变量m没有初始化为0,但m是我在主函数外定义的,初始值应该为0,这是为什么?
还有,我如果这么写第七行
CPPint n,A[210],B[210],C[210],m;
会RE,显示在运行完25行后n的值变成了0,导致除0报错。但我全程没有修改n的值,为什么会这样?
回复
共 6 条回复,欢迎继续交流。
正在加载回复...