做题做到凌晨一点半,结果全是wa,明明测试没问题,求助

P1601 A+B Problem(高精)

两个问题,一是没有特判结果为0导致当结果为0时没有输出,二是没有把数字的每一个位对齐,比如12+123,这里你的代码是1对1,2对2的,建议用string输入,然后找到两个数中最高的位,之后下标从大到小把字符变成数字存到你的number数组中
by imsb @ 2023-10-05 07:39:08


话说这里可以发题解吗
by imsb @ 2023-10-05 07:39:43


@[imsb](/user/1013544) 讨论区不能发题解,要发题解去题解区
by yanhao40340 @ 2023-10-05 07:44:06


@[Misaka14573](/user/1125185) 说句闲话: 你看回复框上面这一栏,从右往左数第6个,可以把代码放进去。这样代码就不会像你发的这个一样杂乱无章了捏。 或者用三个 ` 符号(键盘左上角) ,下面开一行贴上代码,再开一行用三个那个符号就行了。 这样会让你的代码的排版就像c++一样美观。
by WZRYWZWY @ 2023-10-05 07:52:49


@[Misaka14573](/user/1125185) 想要更丰富的展现?使用 `Markdown`、$\KaTeX$ --- \```cpp //这里放你的代码 \```
by Special_Tony @ 2023-10-05 08:03:05


```c #include<stdio.h> int number[1000],number1[1000],number3[1000]; int i=0; int i1=0; int t9=0; int text(int t) { for(int i=0;i<=9;i++) { if(i+48==t) //将字符串转换为int类型 { return i; } } } void count() { int t5,t6; int t8=0; (i>=i1)?(t5=i):(t5=i1); //printf("%d %d\n",i,i1); int x1=0; if(i>i1) { for(int n=i1-1;n>=0;n--) { number1[n+i-i1]=number1[n]; number1[n]=0; } } if(i1>i) { for(int n=i-1;n>=0;n--) { number[n+i1-i]=number[n]; number[n]=0; } } for(int n=t5-1;n>=0;n--) { int number11=number[n]+number1[n]; t8+=number11; if(t8!=0) { t9++; t8=0; } number3[x1]+=(number11%10); x1++; number3[x1]+=(number11-number11%(10))/(10); } for(int tv5=0;tv5<i+i1;tv5++) { int t2=1; if(number3[tv5]>=10) { number3[tv5+1]+=(number3[tv5]-(number3[tv5]%(t2*10)))/(t2*10); number3[tv5]=number3[tv5]%(t2*10); } } } int main() { while(1) { int t; char ai; scanf("%c",&ai); // 录入两个数据 t=(int)ai; if(t==10) { break; } number[i]=text(t); i++; } while(1) { int t; char ai; scanf("%c",&ai); t=(int)ai; if(t==10) { break; } number1[i1]=text(t); i1++; } count(); for(int misaka=i+i1;misaka>=0;misaka--) { if(t9==0) { printf("%d",number3[misaka]); break; } if(number3[misaka]==0) { int hj=0; for(int n=i+i1;n>=misaka;n--) { if(number3[n]!=0) hj++; } if(hj==0) continue; } printf("%d",number3[misaka]); } return 0; } ``` 做了修改,这回tle了,有点难绷
by Misaka14573 @ 2023-10-09 18:29:12


|