[백준] 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