c++求大佬帮忙

P1015 [NOIP1999 普及组] 回文数

ans += t[i];(change)
by Carl1264349512 @ 2023-10-31 13:15:14


@[Carl1264349512](/user/1053148) 妙手回春啊大夫,但改了之后提交上去还是有一个错误,输入16和AC27,原本是要输出6的,但是的代码输出的是2 万分感谢
by dreamback_2023 @ 2023-10-31 16:53:51


@[Carl1264349512](/user/1053148) 解决了,翻转数字哪里有问题
by dreamback_2023 @ 2023-10-31 17:12:11


应该是高精的问题,我正在看,而且代码有逻辑重复,主函数中的循坏判断过了,里面就不用判断
by Carl1264349512 @ 2023-10-31 20:15:12


```cpp string func_add(string add_s1, string add_s2,int n){ memset(add_a, 0, sizeof(int) * maxlen); memset(add_b, 0, sizeof(int) * maxlen); memset(add_c, 0, sizeof(int) * rmaxlen); int len = add_s1.length(); //这里 for (int i = 0; i < len; i++){ if(add_s1[i]>='0' && add_s1[i]<='9') add_a[len - 1 - i] = add_s1[i] - '0'; else add_a[len - 1 - i] = add_s1[i] - 55; } len = add_s2.length(); for (int i = 0; i < len; i++){ if(add_s2[i]>='0' && add_s2[i]<='9') add_b[len - 1 - i] = add_s2[i] - '0'; else add_b[len - 1 - i] = add_s2[i] - 55; } //一处错误 if (add_s1.length() > len) len = add_s1.length(); for (int i = 0; i < len; i++){ add_c[i] += add_a[i] + add_b[i]; if (add_c[i] >= n){ add_c[i + 1] += add_c[i] / n; add_c[i] %= n; } } if (add_c[len] > 0) len++; string add_ans; //这里 for (int i = len - 1; i >= 0; i--){ if(add_c[i] < 10) add_ans += add_c[i] + '0'; else add_ans += add_c[i]-10+'A'; } //结束 return add_ans; } ```
by Carl1264349512 @ 2023-10-31 20:40:17


注释是告诉你从哪改到那,要注意16进制逆序存放和输出,超过了1~9,下次要注意
by Carl1264349512 @ 2023-10-31 20:42:22


@[Carl1264349512](/user/1053148) 好的,十分感谢
by dreamback_2023 @ 2023-11-01 18:33:22


|