문제
두 양의 정수가 주어졌을 때, 두 수 사이에 있는 정수를 모두 출력하는 프로그램을 작성하시오.
입력
두 정수 A와 B가 주어진다.
출력
첫째 줄에 두 수 사이에 있는 수의 개수를 출력한다.
둘째 줄에는 두 수 사이에 있는 수를 오름차순으로 출력한다.
서브태스크
예제
코드
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
long long a, b;
cin >> a >> b;
if (a > b) swap(a, b);
if (a == b) cout << 0;
else {
cout << b - a - 1 << "\n";
for (long long i = a + 1; i < b; i++) cout << i << " ";
}
}
두 수 a, b를 입력받은 후, 항상 b에 a보다 크거나 같은 값이 올 수 있도록 swap 함수를 사용한다.
( 편의상 #include <bits/stdc++.h>를 사용했지만 swap함수는 <algorithm> 헤더에 포함되어있다.)
만약 두 수 a와 b가 같다면 0을 출력하고, 같지 않다면 두 수 사이에 있는 수의 개수와 그 숫자들을 차례로 출력한다.
서브 태스크에 A, B 범위의 최댓값이 10^15라고 되어있기 때문에 변수 a, b의 자료형을 int가 아닌 long long으로 사용해야한다는 점을 조심하자!
문제 출처: https://www.acmicpc.net/problem/10093
10093번: 숫자
두 양의 정수가 주어졌을 때, 두 수 사이에 있는 정수를 모두 출력하는 프로그램을 작성하시오.
www.acmicpc.net
'백준 C++' 카테고리의 다른 글
[백준/C++] 10808 : 알파벳 개수 (0) | 2022.10.27 |
---|