3036 : PRSTENI

네르기·2021년 8월 12일
0

알고리즘

목록 보기
15/76

어떤 문제인가?

n번째의 톱니바퀴가 회전하는 횟수를 구하는 문제.
사실상 관찰력 문제다.

문제에 답이 있다

예시를 잘 보면 (첫번째 톱니 둘레)/(i번째 톱니 둘레) 꼴이다. 이때 기약분수로 나타내야 하므로 최대공약수로 나누면 그만이다.

#include <stdio.h>

int g(int a, int b) {
    if(b<=0) return a;
    g(b, a%b);
}

int main() {
    int i,N,k,P[99]={0};
    scanf("%d",&N);
    for(i=0;i<N;i++) {
        scanf("%d",&k);
        P[i]=k;
    }
    for(i=1;i<N;i++)
        printf("%d/%d\n",P[0]/g(P[0],P[i]), P[i]/g(P[0],P[i]));
}

남들은 어떻게 풀었는가

첫번째 값을 미리 받아와서 호제법을 적용한게 대다수였다. 좋은 발상이다.

#include <stdio.h>

int gcd(int a, int b) {
	if (!b) return a;
	return gcd (b, a % b);
}

int main() {
	int n, a, b, g;
	scanf("%d %d ", &n, &a);
	while (n-- > 1) scanf("%d", &b), g = gcd(a, b), printf("%d/%d\n", a/g, b/g);
}

gooooora님 코드
-> https://www.acmicpc.net/source/7815390

profile
프로그래머와 애니메이터가 되고파

0개의 댓글

관련 채용 정보