Computer Science/Algorithm

[Algorithm/C] BOJ.1193 분수찾기

재오니소스 2017. 11. 21. 16:51


접근방법

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