题目描述
给你一个整数 xx,你需要判断,这个整数中是否出现过数字 6262 或者能够被 6262 整除。如果是,输出 Yes
,否则输出 No
即可。
输入格式
输入共一行,为一个整数 xx。
输出格式
输出共一行。
如果 xx 中是否出现过数字 6262 或者能够被 6262 整除,输出一行 Yes
,否则输出一行 No
。
输入输出样例
输入 #1复制
11624
输出 #1复制
Yes
输入 #2复制
12214
输出 #2复制
Yes
输入 #3复制
16124
输出 #3复制
No
输入 #4复制
62
输出 #4复制
Yes
说明/提示
样例 1 解释
显然,1162411624 中出现了 6262。
样例 2 解释
容易知道,12214 = 62 \times 19712214=62×197,所以 1221412214 可以被 6262 整除。
样例 3 解释
虽然 1612416124 中出现了 66 和 22,但是没有出现一个完整的 6262。这种情况不被叫做【出现 6262】。
样例 4 解释
显然,6262 中出现了 6262,也是 6262 的倍数。
数据规模与约定
对于 20\%20% 的测试数据,保证 x \leq 10x≤10;
对于 40\%40% 的测试数据,保证 x < 100x<100;
对于 100\%100% 的测试数据,保证 1 \leq x \leq 10 ^ {18}1≤x≤1018。
题目大意
给你一个整数 xx,你需要判断,这个整数中是否出现过数字 6262 或者能够被 6262 整除。
解析
需要完成的任务可以分为两部分。
第一部分为判断 xx 是否可被 6262 整除。使用 if
语句判断即可。
第二部分为判断 xx 中是否出现过 6262,这里提供一种比较简单的思路。
我们使用 while
循环不断去除 xx 的最后一位,每次去除后都判断一下 x \bmod 100xmod100 的值是否为 6262,并进行记录,核心思路为:
- 判断 x \bmod 100xmod100 的值是否为 6262,如果是则记录并退出循环。
- 如果不是,将 xx 赋值为 \left \lfloor \dfrac x{10} \right \rfloor⌊10x⌋(这里的向下取整可以直接使用
int
除法计算来解决)。 - 返回到第 11 步。
最后进行对应的输出即可。
核心代码:
int flag = 0;
if (x % 62 == 0) {
flag = 1;
} else while (x) {
if (x % 100 == 62) {
flag = 1;
break;
}
x /= 10;
}
if (flag)
printf("Yes\n");
else
printf("No\n");