题解 | #特殊乘法#(死算方法)

特殊乘法

https://www.nowcoder.com/practice/a5edebf0622045468436c74c3a34240f

#include <iostream>
using namespace std;

int getD(int n){
    int d = 0;
    while(n > 0){
        n = n / 10;
        d++;
    }
    return d;
}

int multi(int n1,int n2) {
    int r = 0, d1 = getD(n1), d2 = getD(n2), i = 0, j = 0;
    int* m1 = new int[d1];
    int* m2 = new int[d2];
    while(n1 > 0){
        m1[i] = n1 % 10;
        n1 = n1 / 10;
        i++;
    }
    while(n2 > 0){
        m2[j] = n2 % 10;
        n2 = n2 / 10;
        j++;
    }
    for(i = 0;i < d1; i++){
        for(j = 0;j < d2; j++){
            r = r + m1[i]*m2[j];
        }
    }
    delete [] m1;
    delete [] m2;
    return r;
}

int main() {
    int n1, n2;
    while (cin >> n1 >> n2) {
        cout << multi(n1, n2) << endl;
    }

    return 0;
}

全部评论

相关推荐

10-25 00:32
香梨想要offer:感觉考研以后好好学 后面能乱杀,目前这简历有点难
点赞 评论 收藏
分享
10-16 22:56
门头沟学院 C++
1234567800:歌尔今年给211开14-15k吗,我本地人连面试都不给😂
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务