입력 코드
#include <stdio.h>
main() {
int X;
scanf("%d", &X);
int i, temp, count;
if (X == 1) {
printf("1/1\n");
}
else {
count = 1;
temp = X;
int numerator, denominator;
while (temp > count) {
temp -= count;
count++;
}
if (count % 2 == 0) {
denominator = count;
numerator = 1;
for (i = 1; i < temp; i++) {
denominator--;
numerator++;
}
}
else {
denominator = 1;
numerator = count;
for (i = 1; i < temp; i++) {
denominator++;
numerator--;
}
}
printf("%d/%d\n", numerator, denominator);
}
}
코드 설명
#반복문 #수열 #규칙성 #수학
#include <stdio.h>
main() {
int X;
scanf("%d", &X);
int i,j,a,b;
for (i = 0; i < 10000; i++) {
for (j = 0; j < i; j++) {
a = j;
b = i - j;
}
}
printf("%d", a / b);
}
처음에는 분자, 분모 따로 생각해서 반복문으로 해결하려고 했지만 어차피 저건 X번째 분수를 구할 수 있는 코드가 아니었다.
#include <stdio.h>
main() {
int X;
scanf("%d", &X);
int i, temp, count;
if (X == 1) {
printf("1/1\n");
}
else {
count = 1;
temp = X;
int numerator, denominator;
while (temp > count) {
temp -= count;
count++;
}
if (count % 2 == 0) {
denominator = count;
numerator = 1;
for (i = 1; i < temp; i++) {
denominator--;
numerator++;
}
}
else {
denominator = 1;
numerator = count;
for (i = 1; i < temp; i++) {
denominator++;
numerator--;
}
}
printf("%d/%d\n", numerator, denominator);
}
}
홀수번째 대각선에서는 분자 감소, 분모 증가
짝수번째 대각선에서는 분자 증가, 분모 감소
↓↓↓ 참고한 사이트
[C언어] 1193번
Q. 무한히 큰 배열에 다음과 같이 분수들이 적혀있다. 1/1 1/2 1/3 1/4 1/5 ··· 2/1 2/2 2/3 2/4 ··· ··· 3/1 3/2 3/3 ··· ··· ··· 4/1 4/2 ··· ··· ··· ··· 5/1 ··· ··· ·..
gogojung.tistory.com
문제 출처
1193번: 분수찾기
첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다.
www.acmicpc.net
'C' 카테고리의 다른 글
#38. [백준_C언어] 2775 : 부녀회장이 될테야 (0) | 2021.01.19 |
---|---|
#37. [백준_C언어] 2869 : 달팽이는 올라가고 싶다 (0) | 2021.01.19 |
#35. [백준_C언어] 2292 : 벌집 (0) | 2021.01.18 |
#34. [백준_C언어] 1712 : 손익분기점 (0) | 2021.01.16 |
#33. [백준_C언어] 5622 : 다이얼 (0) | 2021.01.16 |