반응형
문제
코드
#include <stdio.h>
#include <stdlib.h>
int main()
{
//각 대각선은 1,2,3,4,5 ...개 의 요소를 가짐
//각 대각선의 각 요소의 합은 2,3,4,5 ...
//대각선이 홀수번째 : 마지막 요소 분자 == 1
//대각선이 짝수번째 : 마지막 요소 분모 == 1
/*
1. 몇번째 대각선에 속하는가 ?
2. 그 대각선은 홀수번째? 짝수번째?
3. 분모 또는 분자를 1씩 증가시키며 해당 숫자의 위치까지 이동
4. 분자 또는 분모를 구한다.
5. 출력
*/
int a,b; //answer : a/b
int n;
scanf("%d", &n);
int input = n; //이따가 필요해서 담아둠, n 값은 바뀔예정
int max = 0; //x 번째 대각선의 최대 값
int x = 1; //x번째 대각선
int t = 1; //범위 조정을 위한 변수
while(n > 0){
max += x;
n = n - x;
++x;
}
--x; //x반복문에서 1 증가되서 나오니까 다시 1 감소시켜줌
//max로부터 몇번째
int target = max - input;
if(x % 2 == 1){ //odd : 마지막 요소 분모 == x
b = x-target;
a = x-b+1;
}else{ //even : 마지막 요소 분자 == x
a = x-target;
b = x-a+1;
}
printf("%d/%d", a,b);
return 0;
}
반응형
'개발 > 알고리즘' 카테고리의 다른 글
프로그래머스 두 정수 사이의 합 (0) | 2021.04.03 |
---|---|
프로그래머스 가운데 글자 가져오기 (0) | 2021.04.02 |
codeup 2623 (0) | 2021.03.20 |
codeup 1905 1부터 n까지 합 구하기 (0) | 2021.03.18 |
codeup 1904 (0) | 2021.03.17 |
최근댓글