접근방법
1. 지그재그로 군수열을 만든다. 즉 {1/1, 1/2 2/1, 3/1 2/2 1/3}
2. 짝수번째와 홀수번째의 분모와 분자가 바뀌기 때문에 짝수번째 집단과 홀수번째 집단으로 나눈다.
#include <stdio.h>
int main(int argc, char *argv[]){
int input;
int i;
int sum=0;
scanf("%d",&input);
for(i=1; ;i++){
sum += 1*i;
if(input <= sum)
{
if(i%2 == 0)
{
printf("%d/%d",i-(sum-input),1+sum-input); break;
}
else if(i&2 != 0)
{
printf("%d/%d",1+sum-input,i-(sum-input)); break;
}
}
}
return 0;
}
문제, 사진출처 - https://www.acmicpc.net/problem/1193
'Computer Science > Algorithm' 카테고리의 다른 글
[Algorithm/C] BOJ.2438 별찍기 (0) | 2017.11.23 |
---|---|
[Algorithm/C] BOJ.2775 부녀회장 (2) | 2017.11.22 |
[Algorithm/C] BOJ.2292 벌집 (2) | 2017.11.20 |
[수식/그래프 툴] (0) | 2017.11.19 |
[Algorithm] C 언어 숫자를 입력받아 배열에 한칸씩 넣기 (0) | 2017.11.17 |