[알고리즘] 분수 수열 덧셈

2021. 9. 23. 21:35알고리즘/문제 풀이

728x90

분수 수열 문제의 해법

1. 분자, 분모의 상호 연관성이 있는지를 확인

 

2. 분자, 분모의 반복 규칙을 따로 찾음

 

3. 분자, 분모의 변수 중 어느 것으로 반복되었는지 확인

 

※ 예제

1/2+2/3+3/4+...+49/50을 구하여 출력하는 순서도를 작성하세요.

 

위의 분수 수열 문제의 해법 중 분자, 분모의 상호 연광성이 있는지 확인해보면 분모 값이 분자 값 보다 1이 크다는 연관성을 알 수 있습니다.

 

이런 연관성을 변수로 표현한다면

 

i / (i+1)

 

이런 방법으로 표현할 수 있습니다.

 

 

분자에만 변수를 i로 선언했기 때문에 지금과 같은 경우에는 STOP을 하려면 분자 변수로 선언한 i로 끝을 내야 합니다. 때문에 i값이 49일 때까지 진행하게 하면 됩니다.

 

순서도를 나타내면 이와 같습니다.

 

i 와 SUM 에 초깃값 0을 주고 1회전을 해 보면

 

변수 i 에 0 + 1 이 되어 값이 1이 되고

 

N = 1/(1+1)

 

SUM = 0 + 1/2

 

까지 진행된 뒤에 1회전이 끝나고 2회전 때 2/3 이 더해지는 방식으로 반복되게 됩니다.

 

선증가이기 때문에 i < 49 NO 조건에 충족되면 SUM을 출력하고 종료하면 됩니다.

 

만약 1회전에 1/2 이 아닌 2/3 부터 더해지길 원한다면 초깃값으로

 

i = 1   

 

SUM = 1/2 을 주게 되면

 

1회전에 2/3 부터 더해지는 식을 만들 수 있습니다.