#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void){
int frac[2][2] = { 0 };
float max = 0;
int count = 0;
int count_r;
count_r = count;
scanf("%d %d", &frac[0][0], &frac[0][1]);
scanf("%d %d", &frac[1][0], &frac[1][1]);
float x = ((float)frac[0][0] / frac[1][0]) + ((float)frac[0][1] / frac[1][1]);
if (x > max) {
max = x;
}
for (int i = 0; i < 3; i++) {
int temp1 = frac[0][1]; //B따로 저장
frac[0][1] = frac[0][0]; //A를 B로 옮김
int temp2 = frac[1][1]; //D따로 저장
frac[1][1] = temp1; //B를 D로 옮김
frac[0][0] = frac[1][0];
frac[1][0] = temp2;
count += 1;
float x = ((float)frac[0][0] / frac[1][0]) + ((float)frac[0][1] / frac[1][1]);
if (x > max) {
max = x;
count_r = count;
}
}
printf("%d", count_r);
return 0;
}
1.배열을 이용하여 입력받습니다.
2.for문을 이용하여 배열 안의 숫자를 한 칸씩 옮깁니다.
3.한 번 옮긴 뒤 분수가 얼마나 큰지 확인하고, 최댓값인지 확인합니다.
4.횟수를 출력합니다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void){
int ary[10001] = { 0 };
int N, K;
scanf("%d %d", &N, &K);
int r = 0;
int count = 1;
for (int i = 1; i < N+1; i++) {
if (N % i == 0) {
ary[count] = i;
count += 1;
}
}
if (count < K) {
printf("0");
}
else {
printf("%d", ary[K]);
}
return 0;
}
1.문제에서 처럼 N과 K로 변수를 만들어준다.
2.for문을 이용하여 약수들을 구한다.
3.약수의 숫자가 K번째보다 작은 걸 고려하여 출력한다.