特殊乘法

特殊乘法

http://www.nowcoder.com/questionTerminal/a5edebf0622045468436c74c3a34240f

思路

最直观的做法就是把两个数字的每一位存入数组中,然后遍历两个数组计算每一位的积,然后加起来就好了。我看到有把输入当作字符串来处理的,这个就不需要再用数组进行存储了,直接遍历字符串中的每个字母就可以了,当然这道题是很简单的,没必要多说。

#include<iostream>
#include<vector>

using namespace std;

int cal(int num1, int num2){
    vector<int> nums1, nums2;
    while(num1){
        if(num1 % 10)
            nums1.push_back(num1 % 10);
        num1 /= 10;
    }
    while(num2){
        if(num2 % 10)
            nums2.push_back(num2 % 10);
        num2 /= 10;
    }
    int ans = 0;
    for(int n1 : nums1)
        for(int n2 : nums2)
            ans += n1 * n2;
    return ans;
}

int main(){
    int num1, num2;
    while(cin >> num1 >> num2){
        cout << cal(num1, num2) << endl;
    }
    return 0;
}
算法题解 文章被收录于专栏

不定期更新一些算法题解,有什么问题可以随时留言~

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-08 11:16
点赞 评论 收藏
分享
深夜书店vv:腾讯是这样的,去年很多走廊都加桌子当工区
点赞 评论 收藏
分享
05-27 14:57
西北大学 golang
强大的社畜在走神:27届真不用急,可以搞点项目、竞赛再沉淀沉淀,我大二的时候还在天天打游戏呢
投递华为等公司10个岗位
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 11:29
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务