hyunjin

[C++][수학1 - 분수찾기(1193)] 본문

알고리즘 연습/백준

[C++][수학1 - 분수찾기(1193)]

_h.j 2020. 8. 17. 11:15
728x90

백준 분수 찾기 바로가기

채점 결과

 

[소스 코드]

#include <iostream>
using namespace std;

int main(void){

	int x,line=1,result=0;
	cin >> x;
	
	while ((line) * (line + 1) / 2 < x) 
		line++;
	result = x - line * (line - 1) / 2;

	if (line % 2 == 1) 
		cout <<line+1-result<<"/"<< result;
	else
		cout << result << "/" << line + 1 - result;

	return 0;
}

 

 

[풀이 방법]

분수 찾기 표

1.먼저 x가 해당하는 line을 구한다.

구하는 방법은 line 까지의 합을 구해서 푼다.

(while의 부등호 조심)

 

2. 해당 라인의 숫자 합(A/B에서 A+B)은 line+1 이다.

 

3. x가 해당 라인에서 몇 번째 칸인지 구한다.

x에서 1~line-1 까지의 합을 뺸다.

 

4. 홀수는 라인의 하단 부터 출력하고 짝수는 상단부터 출력하므로

line의 짝홀을 판단한다.

 

 

 

[다른 사람 풀이]

비슷하다.

 

 

728x90