求助:A+B Problem高精只能拿60分
  • 板块题目总版
  • 楼主wstucn
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/4/27 15:32
  • 上次更新2024/4/27 17:42:05
查看原帖
求助:A+B Problem高精只能拿60分
1101485
wstucn楼主2024/4/27 15:32

不知道为什么,算9999+1类似的数会出现问题,始终没有找到原因,希望大佬们帮我看看,谢谢了 附上代码:```cpp #include #include<math.h> #include using namespace std; #define maxlength max(add1.length(),add2.length()) #define minlength min(add1.length(),add2.length()) string add1,add2; int ans[1000]={0},give; int main(){ cin>>add1>>add2; int length=maxlength; if(minlength==add1.length()){ for(int i=0;i<maxlength-minlength;i++){ add1="0"+add1; } }else{ for(int i=0;i<maxlength-minlength;i++){ add2="0"+add2; } } for(int i =length-1;i>=0;i--){ if(add1[i]-'0'+add2[i]-'0'+give>=10){ ans[i+1]=(add1[i]-'0'+add2[i]-'0'+give)%10; give=(add1[i]-'0'+add2[i]-'0'+give)/10; }else{ ans[i+1]=add1[i]-'0'+add2[i]-'0'+give; give=0; } } if(ans[0]!=0){ for(int j=0;j<length;j++){ printf("%d",ans[j]); } printf("\n"); }else{ for(int j=1;j<length+1;j++){ printf("%d",ans[j]); } printf("\n"); }

}

2024/4/27 15:32
加载中...