카테고리 없음

[10951][A+B - 4] C++ 풀이

토끼여우 2022. 10. 15. 01:37
728x90
SMALL

https://www.acmicpc.net/problem/10951

 

10951번: A+B - 4

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

문제

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

입력

입력은 여러 개의 테스트 케이스로 이루어져 있다.

각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)

출력

각 테스트 케이스마다 A+B를 출력한다.

예제 입력

1 1
2 3
3 4
9 8
5 2

예제 출력

2
5
7
17
7

 

우선 기본 코드를 세팅을 하고 문제를 읽어보자

#include <iostream>
using namespace std;
int main() {
return 0;
}

문제는 단순하게 A,B를 입력받아서 합을 출력하는 문제이다

하지만 코드는 생각대로 잘 적어서 제출을 해보았지만 출력초과가 뜨거나 다른 오류가 떴을수있다

 

문제를 앞에 문제들과 비교를해보면 cause를 할수있다

앞에 있던 문제들은 n번 만큼 반복문이 돌면서 A,B를 입력받아 출력하는 문제들이다

n번이라는 횟수가 주어졌기에 별 문제는 없었지만 지금 이 문제에서는 몇번 반복할건지가 없다

 

그러므로 for문을 돌리지않고 while문으로 프로그램을 종료시킬만한 문제가 나올떄까지 반복시킨다

 

#include <iostream>
using namespace std;
int main() {

int A,B;
while (true) {
	cin >> A >> B;
    cout << A+B << endl;
}
return 0;
}

이제 다시 생각해보자 

while문 안에 cin 과 cout 으로 간단하게 만들수있을것이다

그리고 이제 어떠한 오류가 생길떄 까지 반복을 시켜야하는데

계속 이렇게 두게 되면 그냥 계속 무한루프가 돌게 된다

 

가정을 해보자

만약 입력받는 데이터가 없다면

출력은 값이 없기 때문에 출력을 할수없다

이 점을 이용하여 더 이상 입력이 없을떄 까지 반복을 해야한다

 

 

 

#include <iostream>
using namespace std;
int main() {

int A,B;
while (scanf("%d %d", &A,&B) != -1) {
	printf("%d", &A,&B);
    printf("\n");
}
return 0;
}

이렇게 while 조건에 A,B를 입력받지 없으면 exit(-1)을 반환하는점을 이용해 반환하지않을떄까지 무한반복 시켜서 입력이 없으면 -1을 반환하여 프로그램을 exit하게 한다

728x90
LIST