特殊乘法

特殊乘法

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;
}
算法题解 文章被收录于专栏

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

全部评论

相关推荐

12-20 13:19
已编辑
曲阜师范大学 Java
点赞 评论 收藏
分享
牛客41406533...:回答他在课上学,一辈子待在学校的老教授用三十年前的祖传PPT一字一句的讲解,使用谭浩强红皮书作为教材在devc++里面敲出a+++++a的瞬间爆出114514个编译错误来学这样才显得专业
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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