插杆

来源:互联网 发布:北京软件测试公司 编辑:程序博客网 时间:2024/04/27 18:43

1.题目:

 Problem Description

从甲地到乙地原来每隔a米要装一根电线杆,加上两端的两根,一共有b根电线杆,现在改成每隔c米装一根电线杆,除两端的两根不需要移动外,中途还有多少根不必移动?

 Input

输入数据有多组,每组数据包括三个不大于1000的整数a,b,c。

 Output

输出不必动的根数。

 Sample Input

45 53 60

 Sample Output

12

 

 

2.思路:

      不要想太多,这题只要先求出a与c的最小公倍数,然后看两端的距离是否能够整除这个最小公倍数,如果能够整除,那么不必移动的根数就是距离除以最小公倍数再减一,不过不能,就不用减一。刚开始我一直在纠结,本来我是想和a与c的关系有关,结果分3种情况来考虑,结果,我是想多了。

 

3.参考代码:

 

#include <iostream>using namespace std;int gcd(int a,int b){if(b==0) return a;elsereturn gcd(b,a%b); }int lcm(int a,int b){return a/gcd(a,b)*b; }int main() {int a,b,c,x,z;while(cin>>a>>b>>c){x=lcm(a,c);z=a*(b-1);if(z%x==0)cout<<z/x-1<<endl;elsecout<<z/x<<endl;}return 0;}


 

 

 

 

原创粉丝点击