[语言月赛202301] 就要 62

题目描述

给你一个整数 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,并进行记录,核心思路为:

  1. 判断 x \bmod 100xmod100 的值是否为 6262,如果是则记录并退出循环。
  2. 如果不是,将 xx 赋值为 \left \lfloor \dfrac x{10} \right \rfloor⌊10x​⌋(这里的向下取整可以直接使用 int 除法计算来解决)。
  3. 返回到第 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");
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值