#给牛客的问题反馈和建议#
高精度整数加法这个题目是不是有问题?我自己手动输入好几组数据都算出来是对的,为什么一提交就算出奇怪的数字
全部评论
代码 #include<stdio.h> #include<string.h> int main() { char num1[10000]; while(gets(num1)) { char num2[10000]; char tmp[10000]; gets(num2); int len1=strlen(num1)>strlen(num2)?strlen(num1):strlen(num2); int len2=strlen(num1)>strlen(num2)?strlen(num2):strlen(num1); int stack[10000]={0};int jinwei=0;int i,j,k; int len; int cot=0; if(len1==len2&&num1[0]-'0'+num2[0]-'0'>=10) { len=len1; } else { len=len1-1; } if(strlen(num1)<strlen(num2)) { strcpy(tmp,num1); strcpy(num1,num2); strcpy(num2,tmp); } j=len+1;k=len2; len2--; for(i=len1-1;i>=0;i--) { cot++; if(jinwei&&len2!=-1) { stack[len--]=(num1[i]-'0')+(num2[len2--]-'0')+1; jinwei=0; } else{ stack[len--]=(num1[i]-'0')+(num2[len2--]-'0'); } if(stack[len+1]>=10) { jinwei=1; stack[len+1]%=10; } if(jinwei&&len2==-1) { stack[i]++; } if(len2<0&&cot<len1) { for(k=i-1;k>=0;k--) { stack[len--]=num1[k]-'0'; } break; } } for(int u=0;u<=j-1;u++) { stack[u]+='0'; printf("%c",stack[u]); } printf("\n"); memset(num2,0,10000); memset(num1,0,10000); memset(tmp,0,10000); memset(stack,0,10000); } return 0; }
点赞 回复 分享
发布于 2021-05-30 16:44

相关推荐

有趣的牛油果开挂了:最近这个阶段收到些杂七杂八的短信是真的烦
点赞 评论 收藏
分享
10-09 09:39
门头沟学院 C++
HHHHaos:这也太虚了,工资就一半是真的
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务