浙江理工大学入队200题——8O
问题 O: 零基础学C/C++88——三个齿轮啮合
题目描述
如图在齿轮箱里三个齿轮互相衔接,某瞬间两对齿相遇,问各转多少圈后,这两对齿同时重逢。
输入
输入数据有多组,每组数据一行,每行为3个数a,b,c,分别代表三个齿轮的齿数(均为正整数)。数与数之间用空格隔开。当a,b,c中有一个为0时,输入结束。
输出
输出每组数据中,每个齿轮所转的圈数,用空格隔开。
样例输入 Copy
1 1 1
2 2 2
0 0 0
样例输出 Copy
1 1 1
1 1 1
题解
需要满足转的轮数为整数
简言之就是求最小公倍数之后除于各项之后的数分别是多少。
这个代码未优化,但是可以AC
代码(AC)
点击查看代码
#include <stdio.h>
int main (){
int a,b,c;
while(scanf("%d%d%d",&a,&b,&c)!=EOF)
{
if(a==0||b==0||c==0) break;
int e;
for(e=1;;e++)
{
if(e%a==0&&e%b==0&&e%c==0)
{break; }
}
printf("%d %d %d\n",e/a,e/b,e/c);
}
return 0;
}
本文来自博客园,作者:shany212,转载请注明原文链接:https://www.cnblogs.com/codeshany/p/zstu_200_8O.html