[303036]リング


[303036]リング


質問する
尚根は倉庫でN個の指輪を見つけた.尚根は各リングを地面に置いて、前のリングと後ろのリングに接続させます.

尚根は最初のリングを回し始め、残りのリングも一緒に回っていることに気づいた.残りのリングは最初のリングより速く回転し、ゆっくり回転します.このように1周して、とても好奇心があって1周目に1周して、残りの周は何周します.
リングの半径を指定します.このとき,最初のループを1周し,プログラムを記述して残りのループを数周求める.

入力


第1行はリングの個数Nを与える.(3 ≤ N ≤ 100)
次の行は、リングの半径が上根が床に置かれる順序で与えられます.半径は1~1000の自然数です.

しゅつりょく


出力は常にN-1行にします.第1のリングを除く各リングについて、第1のリングが1回転すると、そのリングは数回転し、A/B出力を約分数で出力する.

コード#コード#

#include <iostream>

using namespace std;

/* 조건 */
#define MAX_N 100

/* 변수 */
int N, gcd;
int arr[MAX_N+1];

/* 함수 */
int GCD(int a, int b) {
    if(a % b == 0) return b;
    return GCD(b, a%b);
}

int main() {
    /* 입력 */
    cin >> N;
    for(int i = 0; i < N; i++) {
        cin >> arr[i];
    }

    /* 풀이 */
    for(int i = 1; i < N; i++) {
        gcd = GCD(arr[0], arr[i]);
        cout << arr[0]/gcd << '/' << arr[i]/gcd << '\n';
    }
}

に答える


a[0], a[1], a[2], ... , aについて
1回転あたりの車輪数はa[0]/a[i]である.
しかし既約点数で表すため,各数字の最大公約数を求め,割当てと出力を行った.

ソース


白駿[030336]リング
https://www.acmicpc.net/problem/3036