题目链接:http://codeforces.com/problemset/problem/488/A
题目意思:给出一个数a,范围是[-10^9, 10^9],问它最少需要加的一个正整数 b 是多少,条件是加完之后这个数至少有一位有 8.
有一个小小的意外,改了好久啊~~~~负数的情况,需要乘上 -1,再判断。
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cstdlib>
using namespace std; typedef __int64 LL; bool get_eight(LL x)
{
if (x < )
x *= (-);
while (x)
{
LL k = x % ;
if (k == )
return true;
x /= ;
}
return false;
} int main()
{
#ifndef ONLINE_JUDGE
freopen("in.txt", "r", stdin);
#endif // ONLINE_JUDGE LL a;
while (scanf("%I64d", &a) != EOF)
{
LL cnt = ;
for (LL i = a+; ; i++)
{
if (!get_eight(i))
cnt++;
else
break;
}
printf("%I64d\n", cnt);
}
return ;
}