收集每位分别相乘相加

// #include <cstdio>
// #include <cstring>

// //笨笨的方法
// //依次拆分出a的各位与b的各位相乘相加
// int main() {
//     int a, b, a_digits[10], b_digits[10], i, j;
//     memset(a_digits, -1, sizeof(a_digits));
//     memset(b_digits, -1, sizeof(b_digits));
//     while (scanf("%d%d", &a, &b) != EOF) {
//         i = 0;
//         while (a) {
//             a_digits[i++] = a % 10;
//             a /= 10;
//         }
//         j = 0;
//         while (b) {
//             b_digits[j++] = b % 10;
//             b /= 10;
//         }
//         int sum = 0;
//         for (int i = 0; a_digits[i] != -1; i++) {
//             for (int j = 0; b_digits[j] != -1; j++) {
//                 sum += a_digits[i] * b_digits[j];
//             }
//         }
//         printf("%d\n", sum);
//         return 0;
//     }
// }

#include <cstdio>
#include <vector>
using namespace std;

int main() {
    int a, b;
    while (scanf("%d%d", &a, &b) != EOF) {
        vector<int> veca;
        vector<int> vecb;
        while (a) {
            veca.push_back(a % 10);
            a /= 10;
        }
        while (b) {
            vecb.push_back(b % 10);
            b /= 10;
        }
        int ans = 0;
        // 收集每位时从低位开始,遍历时也从rbegin开始,也可以直接从begin开始,顺序不影响结果
        for (auto it1 = veca.rbegin(); it1 != veca.rend(); it1++) {
            for (auto it2 = vecb.rbegin(); it2 != vecb.rend(); it2++) {
                ans += (*it1) * (*it2);
            }
        }
        printf("%d\n", ans);
    }
    return 0;
}