[백준] 14277 등차 수열과 등비 수열 c++ (+14277 반례)
2022. 7. 1. 00:05ㆍ알고리즘/백준
728x90
오랜만에 3년 정도 늙은 거 같습니다. 왜 why?
이 문제 풀면서 c++에 log연산에 문제가 있는 거 같은데?
-> 코드 갈아 엎어
-> 맞왜틀 맞왜틀
-> 수많은 반례
-> 창작과 창조의 고통
3 4 1 1 1000
1 1 1 2 1000
40 77 40 100000 40
452 24 4 5 600
1 1 1 1 1000
3 3 1 2 1000
1000 2 5 5 10
5 5 1000 2 10
2 2 2 2 1000
2 2 2 2 1
251
1000
1
10
1000
343
1
2
500
0
while(1){
모든 반례가 다 돌아가는데 왜 안되지??
-> 스트레스, 세상에 대한 원망
-> 다시 반례를 어떻게든 만들어봄
-> 4,8,9%에서 틀렸다고 나옴
}


다른 방식으로 두번 풀어봤습니다.
코드에 대한 설명은 주석으로 표시해놨습니다.
#include <iostream>
#include <cmath>
using namespace std;
long long int x, y,cnt;
int main() {
cin.tie(0);
cout.tie(0);
ios_base::sync_with_stdio(false);
long long int a, b, c, d, u;
cin >> a >> b >> c >> d >> u;
//등차수열 개수 고하는 과정
if (u - a >= 0) {
x = (u - a) / b;
cnt += x;
cnt++;
}
//등비 구하는 과정
for (long long int i = c; i <= u;) {
if (i >= a && (i - a) % b == 0) {}
// 1. i가 a보다 커버렸을때 2. 등차 수열에 있는지 확인하고 없으면 cnt++ 1,2성립 x 그럼 아무런 행동을 하지않는다.
else {
cnt++;
}
i *= d;
if (d == 1) break;
}
cout << cnt;
return 0;
}
728x90
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 11399 ATM c++ (0) | 2022.07.03 |
---|---|
[백준] 1697 숨바꼭질 (0) | 2022.07.02 |
[백준] 10815 숫자 카드 ( C++) (0) | 2022.06.30 |
[백준] 1463 1로 만들기 (0) | 2022.06.28 |
[백준 1269번] : 대칭 차집합 (0) | 2022.06.22 |