문제 해결/BaekJoon

[백준] [C++] 5217번 쌍의 합

WSLim_97 2022. 11. 13. 19:51
반응형

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

 

5217번: 쌍의 합

1보다 크거나 같고 12보다 작거나 같은 자연수 n이 주어졌을 때, 합이 n이 되는 두 자연수의 쌍을 찾는 프로그램을 작성하시오. 예를 들어, 5가 주어진 경우 가능한 쌍은 1,4와 2,3이 있다. 두 수는

www.acmicpc.net


코드

#include <iostream>
using namespace std;

int main() {
	int a, num;
	cin >> a;
	for (int i = 1; i <= a; i++) {
		cin >> num;
		cout << "Pairs for " << num << ": ";

		int count = 0;
		for (int j = 1; j <= num / 2; j++) {
			int n = num - j;

			if (n == j || n <= 0) {
				break;
			}
			else {
				if (count++) {
					cout << ", ";
				}
				cout << j  << " " << n;
			}
		}
		cout << "\n";
	}
	return 0;
}

풀이

num를 입력받고 합이 num이 되는 두 수를 구하는 문제이다. 단, 1 <= num <= 12이고 두 수는 같아선 안된다.

 

두 수는 n과 j로 선정하였고 j는 반복문을 통해 하나씩 증가시키고, 증가시킨 j를 사용해 n을 구한다.

 

n이 j와 같거나 n이 0보다 작거나 같다면 루프를 빠져나온다.

 

그렇지 않다면 두 수를 출력하고 해당하는 n과 j가 없다면 아무것도 출력하지 않는다.

 

 

참고: https://jaimemin.tistory.com/1776

 

백준 5217번 쌍의 합

문제 링크입니다: https://www.acmicpc.net/problem/5217 5217번: 쌍의 합 1보다 크거나 같고 12보다 작거나 같은 자연수 n이 주어졌을 때, 합이 n이 되는 두 자연수의 쌍을 찾는 프로그램을 작성하시오. 예를

jaimemin.tistory.com

 

반응형