네 수
https://www.acmicpc.net/problem/10824
네 자연수 A, B, C, D가 주어진다. 이때, A와 B를 붙인 수와 C와 D를 붙인 수의 합을 구하는 프로그램을 작성하시오.
두 수 A와 B를 합치는 것은 A의 뒤에 B를 붙이는 것을 의미한다. 즉, 20과 30을 붙이면 2030이 된다.
이게 정답률이 37퍼?
이유가 다 있는 거다.
입력 조건을 무시하고 풀면 이렇게 된다.
첫째 줄에 네 자연수 A, B, C, D가 주어진다. (1 ≤ A, B, C, D ≤ 1,000,000)
이 조건을 무시하고 그냥 풀었을 때, 만약 백만을 이어 붙이게 되면
10000001000000이 되는데, 이는 stoi로 변환했을 때 범위를 초과하므로(int로 변환) 런타임 에러가 날 수밖에 없다.
저 조건만 주의해서 풀어주자.
나는 unsigned long long을 택했는데 그냥 long long써도 된다.
코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #include <iostream> #include <math.h> using namespace std; int main() { string arr[4]; for(int i=0; i<4; i++) { cin>>arr[i]; } unsigned long long a, b; a=stoi(arr[0])*pow(10, arr[1].size())+stoi(arr[1]); b=stoi(arr[2])*pow(10, arr[3].size())+stoi(arr[3]); cout<<a+b; return 0; } | cs |
'PS' 카테고리의 다른 글
백준 1707번 C++ 이분 그래프 (0) | 2019.06.12 |
---|---|
백준 11004번 C++ K번째 수 (0) | 2019.06.10 |
백준 2225번 C++ 합분해 (0) | 2019.06.02 |
백준 9461번 C++ 파도반 수열 (0) | 2019.06.01 |
백준 1912번 C++ 연속합 (0) | 2019.05.30 |
댓글