Codeforces Round #278 (Div. 2)-A. Giga Tower_html/css_WEB-ITnose

WBOY
풀어 주다: 2016-06-24 11:53:29
원래의
1611명이 탐색했습니다.

Giga Tower

time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

Giga Tower is the tallest and deepest building in Cyberland. There are 17?777?777?777 floors, numbered from ?-?8?888?888?888 to 8?888?888?888. In particular, there is floor 0 between floor ?-?1 and floor 1. Every day, thousands of tourists come to this place to enjoy the wonderful view.

In Cyberland, it is believed that the number "8" is a lucky number (that's why Giga Tower has 8?888?888?888 floors above the ground), and, an integer is lucky, if and only if its decimal notation contains at least one digit "8". For example, 8,??-?180,?808 are all lucky while42,??-?10 are not. In the Giga Tower, if you write code at a floor with lucky floor number, good luck will always be with you (Well, this round is #278, also lucky, huh?).

Tourist Henry goes to the tower to seek good luck. Now he is at the floor numbered a. He wants to find the minimum positive integer b, such that, if he walks b floors higher, he will arrive at a floor with a lucky number.

Input

The only line of input contains an integer a (?-?109?≤?a?≤?109).

Output

Print the minimum b in a line.

Sample test(s)

input

179
로그인 후 복사

output

input

-1
로그인 후 복사

output

input

18
로그인 후 복사

output

10
로그인 후 복사

Note

For the first sample, he has to arrive at the floor numbered 180.

For the second sample, he will arrive at 8.

Note that b should be positive, so the answer for the third sample is 10, not 0.






题目大意:给一个数n,加上k之后,使得n中包含数字8. 求这样的最小的正整数k.



解题思路:其实本题的最大的k也就是16(n == -8时),直接在这里面暴力查找,然后每个都判断是否含有8即可。不过要注意,在判断的时候,如果是直接取模的话,则要注意 -8 % 10 == -8.




AC代码:

#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#include <vector>#include <queue>#include <set>#include <map>#include <string>#include <math.h>#include <stdlib.h>#include <time.h>using namespace std;#define INF 0x7ffffffflong long a;int check(long long x){    int flag = 0;    while(x){        int f = x%10;        if(abs(f) == 8){        //注意是abs(f)            flag = 1;            break;        }        x /= 10;    }    return flag;}int main(){    #ifdef sxk        freopen("in.txt","r",stdin);    #endif    long long n;    while(scanf("%lld",&n)!=EOF)    {        for(long long i=1; i=-8888888888 ; i++){            if(check(n+i)){                printf("%lld\n", i);                break;            }        }    }    return 0;}</time.h></stdlib.h></math.h></string></map></set></queue></vector></algorithm></iostream></string.h></stdio.h>
로그인 후 복사





원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!