原题传送门: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位的整数,通过最多加几次得到包含888的和。通过分析最坏情况,确定暴力枚举的可行性,并提供了一个C++代码实现来寻找答案。博客作者欢迎读者关注其洛谷账号和团队。

被折叠的 条评论
为什么被折叠?



