加载中...

浙江理工大学入队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;
}
posted @ 2022-10-29 12:57  shany212  阅读(83)  评论(0编辑  收藏  举报