原题传送门: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
}