[BOJ] WHILE문

2020. 7. 21. 07:37BOJ

좋은 아침입니다.

 

[BOJ 10952]

 

여전히 쉬워

#include <stdio.h>
int two_sum(){
    int A, B;
    scanf("%d%d",&A,&B);
    
    if(A == 0 && B == 0) return -1;
    printf("%d\n",A+B);
    return 0;
}
int main(){
    while(two_sum() == 0) ;
}

 

[BOJ 10951]

 

옛날에 이 문제를 어떻게 풀어야 하는지 생소했던 기억이 있다. 핵심은 입력이 끝났음을 인지하는 방법을 알아야 하는 것이다. 입력이 모두 끝나면 운영체제에서는 EOF로 끝을 표시해놓는다. 그래서 입력이 끝났음을 안다. 이 때 scanf 함수는 EOF의 값을 리턴한다. 보통 이 값은 -1이나 다를 수도 있다. 일반적으로는 음수라고 한다. 

#include <stdio.h>
int two_sum(){
    int A, B;
    if(scanf("%d%d",&A,&B) < 0) return -1;
    
    if(A == 0 && B == 0) return -1;
    printf("%d\n",A+B);
    return 0;
}
int main(){
    while(two_sum() == 0) ;
}

 

[BOJ 1110]

 

이제 좀 풀어볼 만한 것 같다. 그냥 설명한대로 구현하면 된다. 

#include <stdio.h>

int number_cycle(int N){
    const int a_org = N / 10, b_org = N % 10;
    int a = a_org, b = b_org;
    int count = 0;
    
    do{
        int b_next = (a + b) % 10;
        a = b;
        b = b_next;
        ++count;
    } while(a != a_org || b != b_org);
    
    return count;
}

int main(){
    int N;
    scanf("%d",&N);
    printf("%d",number_cycle(N));
}

 

감사합니다.

'BOJ' 카테고리의 다른 글

[BOJ] 함수  (0) 2020.07.23
[BOJ] 1차원 배열  (0) 2020.07.21
[BOJ] FOR문  (0) 2020.07.20
[BOJ] 입출력과 사칙연산  (1) 2020.07.20
[BOJ] IF문  (0) 2020.07.19