[C언어] 백준 3036 : 링

6314 단어 C백준C

생각의 흐름

쉬워보였다. 배열에다 저장해주고, 첫번째 값 (8)잡고 4와 2로 나누어 떨어지는경우와 아닌경우로 나누어서 풀었다.
나누어 떨어지면 그냥 나눈값 저장하고 /1 출력,
아니라면 최대공약수 구해서 출력. 끝

내가 푼 코드

#include <stdio.h>

int main()
{
	int n, i, min, j;
	int arr[101];
	int temp[101];
	scanf("%d", &n);
	min = 1;
	i = 1;
	while (i <= n)
	{
		scanf("%d", &arr[i]);
		i++;
	}
	i = 2;
	while (i <= n)
	{
		if (arr[1] % arr[i] == 0)
		{
			temp[i] = arr[1] / arr[i];
			printf("%d/1\n", temp[i]);
		}
		else
		{
			j = 1;
			while (j <= arr[i])
			{
				if (arr[1] % j == 0 && arr[i] % j == 0)
					min = j;
				j++;
			}
			printf("%d/%d\n", arr[1] / min, arr[i] / min);
		}
		i++;
	}
}

지금 보니 굳이 temp[i] 안잡고 걍 int temp로 하고 초기화하고 그런식으로 했어도 충분했을 것 같다.

좋은 웹페이지 즐겨찾기