题目
Description
有n个半径不同的圆环,把它们依次放在地上摆成一行, 请你求出当第一个环转动了1圈时,其他每个环都转动了多少圈。 由于答案可能不是整数,所以请用最简分数的形式表示,格式见样例。
Format
Input
输入第一行为一个整数n,为圆环的个数。 第二行为n个整数,依次表示每个圆环的半径。 3≤n≤100,半径长度在1∼1000 之间
Output
输出共n-1行,表示除第一个圆环外,其他圆环所转动的圈数。
Samples
输入数据 1
3
8 4 2
Copy
输出数据 1
2/1
4/1
Copy
Limitation
1s, 1024KiB for each test case.
思路:
这道题,其实应该把圆环看做是互相咬合齿轮,
那题目中的8 4 2 三个半径举例,
半径比是4:2:1,
周长比也是4:2:1,
我们求第i个齿轮转了多少圈,应该用第1个齿轮第周长去除以第i个齿轮的,然后化简;
#include <bits/stdc++.h>
using namespace std;
int n, k;
int main() {
cin >> n;
int a[n + 2];
cin >> a[1];
k = a[1];
for (int i = 2; i <= n; i++) {
cin >> a[i];
int h = __gcd(a[i], k);//求出两个数最大公因数
cout << k / h << "/" << a[i] / h << endl;// 化简
}
return 0;
}
如果这篇博客有帮助的话,请大家多多三连
该篇博客探讨了一个有趣的数学问题,即多个半径不同的圆环排列后,当第一个环转动一圈时,其它环转动的圈数。通过将圆环视为相互咬合的齿轮,博主利用周长比和最大公约数进行化简,得出每个环转动的圈数。此问题涉及到数学的数论和比例知识,适合喜欢数学和逻辑思维的读者阅读。
&spm=1001.2101.3001.5002&articleId=120013786&d=1&t=3&u=ad2b505ff354480b8a70f04ab3100928)
214

被折叠的 条评论
为什么被折叠?



