【简单】三齿轮问题

描述

如图在齿轮箱里三个齿轮互相衔接,某瞬间两对齿相遇,问各转多少圈后,这两对齿同时重逢。

输入

输入数据有多组,每组数据一行,每行为3个数a,b,c,分别代表三个齿轮的齿数(均为正整数)。数与数之间用空格隔开。当a,b,c中有一个为0时,输入结束。

输出

输出每组数据中,每个齿轮所转的圈数,用空格隔开。

样例输入

1 1 1
2 2 2
0 0 0

样例输出

1 1 1
1 1 1

题目来源

扫描二维码关注公众号,回复: 8971359 查看本文章

TZOJ

分析:
求三个数的最大公约数。
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[3],b[3];
while(cin>>a[0]>>a[1]>>a[2])
{
b[0]=a[0];
b[1]=a[1];
b[2]=a[2];//记录三个数后再进行排序。
if (a[0]==0||a[1]==0||a[2]==0)
{
break;
}//如果三个数中有一个为0则结束。
sort(a,a+3);
int i,l=a[2],r=a[0]*a[1]*a[2];
for (i=l;i<r;i++)
{
if (i%a[0]==0&&i%a[1]==0&&i%a[2]==0)
{
break;
}
}
printf("%d %d %d\n",i/b[0],i/b[1],i/b[2]);
}
return 0;
}

发布了122 篇原创文章 · 获赞 0 · 访问量 4680

猜你喜欢

转载自blog.csdn.net/Skynamer/article/details/104130286