P10993 【MX-J3-T0】37 题解

· · 题解

题目传送门

这题很简单,我们可以拆分 a \times 37 的每一位,用一个桶数组记录每一个数字是否出现,最后遍历桶数组,用一个 sum 把 vis 数组的总和加起来,因为这个数字如果出现了就是 1,没有出现就是初始值 0,如果 sum 大于 1 的话,也就是有不止一种数字出现,就直接输出 No,否则输出 Yes。

代码很简单,适合新手练习:

#include<bits/stdc++.h>
#define int long long
using namespace std;

int a;
int vis[15];

signed main() {
    cin >> a;
    int x = a * 37;
    while (x) {
        vis[x % 10] = 1;
        x /= 10;
    }

    int sum = 0;
    for (int i = 0; i < 10; i++) {
        sum += vis[i];
    }

    if (sum > 1) cout << "No";
    else cout << "Yes";
    return 0;
}

完结。