乘法公式这里错了,求大佬解答呜呜呜
  • 板块P1303 A*B Problem
  • 楼主Otion
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/12/28 14:14
  • 上次更新2023/10/24 06:20:08
查看原帖
乘法公式这里错了,求大佬解答呜呜呜
843596
Otion楼主2022/12/28 14:14

因为这里面的字符倒序我直接用的reverse函数 下标从0开始,所以和大家的公式可能就不太一样了

#include <bits/stdc++.h>
using namespace std;
const int N = 4020;
char A[2005], B[2005];
int a[2005], b[2005];
int c[N];
int main()
{
    scanf("%s", A);
    scanf("%s", B);
    int len_a = strlen(A);
    int len_b = strlen(B);
    reverse(A, A + len_a);
    reverse(B, B + len_b);
    for (int i = 0; i < len_a; i++)
    {
        a[i] = A[i] - '0';
    }
    for (int i = 0; i < len_b; i++)
    {
        b[i] = B[i] - '0';
    }
    for (int j = 0; j < len_a; j++)
    {
        for (int k = 0; k < len_b; k++)
        {
            c[j + k] += a[j] * b[k];
            if (c[j + k] > 9)
            {
                c[j + k + 1] = c[j + k] / 10;
                c[j + k] %= 10;
            }
        }
    }
    int flag = 4019;
    while (c[flag] == 0)
    {
        if (flag == 0)
        {
            cout << 0;
            return 0;
        }
        flag--;
    }
    for (int i = flag; i >= 0; i--)
    {
        cout << c[i];
    }
    return 0;
}
2022/12/28 14:14
加载中...