1. 大数加法

    就是很长的一串数字 加上另外一串很长的数字
    大数加法的核心在超出了基本运算的范围,需要采用其他方法来解决加法问题
    思路:输入——倒序相加——判断是否进位——输出解决前导零问题
    1.1 字符串A、B长度相等

    1. string Add(string A, string B) {
    2. string C;
    3. int i = A.size() - 1;
    4. int Bas = 0, Adv = 0;
    5. while (i >= 0) {
    6. Bas = (A[i] - '0') + (B[i] - '0'); //当前位所得值
    7. C += (Adv + Bas) % 10 + '0'; //当前位终值
    8. Adv = (Adv + Bas) / 10; //进位值
    9. --i;
    10. }
    11. if (Adv) C += (Adv + '0'); //若最后仍有进位值
    12. reverse(C.begin(), C.end()); //逆转得到两数和
    13. return C;
    14. }

    1.2 字符串A、B长度不等
    这里的处理方法就是找出较长的那个字符串,以此为基准进行操作

    1. 12345678765
    2. +
    3. 00000012345
    1. string Add(string s, string t) {
    2. if(s.size() < t.size())
    3. {
    4. string temp = s;
    5. s = t;
    6. t = temp;
    7. }//找到较长的字符串
    8. int len1 = s.size();
    9. int len2 = t.size();
    10. int num1,num2,flag = 0,sum;
    11. while(len1 > 0)//以此为基准
    12. {
    13. num1 = s[len1-1]-'0';
    14. if(len2 > 0)
    15. num2 = t[len2-1]-'0';
    16. else
    17. num2 = 0;//正好补位
    18. sum = num1 + num2 + flag;
    19. s[len1-1] = sum % 10 + '0';
    20. flag = sum / 10;//是否进位
    21. len1--;
    22. len2--;
    23. }
    24. if(flag == 1)//若最后仍有进位值
    25. s = "1" + s;
    26. return s;
    27. }
    1. 回文数的判断
      1. bool isPalindromic(string C) {
      2. int Len = C.size(), i;
      3. bool flag = true;
      4. for (i = 0; i < Len / 2; i++) if (C[i] != C[Len - 1 - i]) flag = false;
      5. return flag;
      6. }
      [

    ](https://blog.csdn.net/m0_50829573/article/details/121925175)