题解系列009 | 洛谷题解 CF488A 【Giga Tower】

原题传送门:Giga Tower

一、题意

题目(传送门)给一个绝对值不超过十位的整数,想计算至多加几后会在和数中出现数字 8 8 8.

二、分析

看到这道题,我们最容易想到的当然是暴力枚举,但是首先需要明确这样做所需的执行工作量再开始写。注意到最坏的情况也可以在至多 16 16 16 次内完成(我们看个位就会知道最坏的答案是 16 16 16,也即 − 8 -8 8 8 8 8),并且输入的数据位数不超过 10 10 10 位,因此暴力尝试是可行的。

三、代码

#include <iostream>
using namespace std;

bool isLucky(long long n) // 判断是否“幸运”
{
	if (n < 0)
		n = -n;
	for (; n >= 1; n /= 10)
	{
		if (n % 10 == 8)
			return true;
	}
	return false;
}

int main()
{
	long long n;
	cin >> n;
	int i = 1;
	while (!isLucky(n + i))
	{
		i++;
	} // 尝试ing
	cout << i;

	return 0; // 完结撒花qwq
}
欢迎大家关注我的博客!
我的洛谷账号:这是我
我的洛谷团队:这是我的团队
欢迎大家关注我,并加入我的团队哦^ _ ^
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值