C++求助(有红有紫也有绿)
  • 板块P1303 A*B Problem
  • 楼主TPJX
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/3/15 18:28
  • 上次更新2024/3/15 18:30:03
查看原帖
C++求助(有红有紫也有绿)
1280061
TPJX楼主2024/3/15 18:28

代码:

#include <iostream>
#include <cstring>
using namespace std;
short a[105], b[105], c[210];
char sa[105], sb[105];
int la, lb, lc;
int main() {
    cin >> sa >> sb;
    la = strlen(sa);
    lb = strlen(sb);
    for (int i = 0; i < la; ++i)
        a[la - i] = sa[i] - '0';

    for (int i = 0; i < lb; ++i)
        b[lb - i] = sb[i] - '0';

    for (int i = 1; i <= la; ++i) {
        int jw = 0; //代表进位 
        for (int j = 1; j <= lb; ++j) {
            c[i + j - 1] = c[i + j - 1] + jw + a[i] * b[j];   //对应位相乘 
            jw = c[i + j - 1] / 10;                            //处理进位 
            c[i + j - 1] %= 10;
        }
        c[i + lb] = jw;
    }
    lc = la + lb;
    while (c[lc] == 0 && lc > 1)
        lc--;                   //删除前导0 
    for (int i = lc; i >= 1; --i)
        cout << c[i];
    return 0;
}

有红有紫也有绿

2024/3/15 18:28
加载中...