zoukankan      html  css  js  c++  java
  • hdu 1713 相遇周期

    在这里插入图片描述


    思路:

    这题讲道理题目有问题,周期应该是天数除以圈数吧。。。
    本质的问题还是求两个周期的最小公倍数,如果换成整数,就很好写了,问题现在是分数,分数求最小公倍数的,
    是分子求最小公倍数,分母求最大公约数,然后就是溢出的问题,全用long long来表示。
    

    代码:

    #include<bits/stdc++.h>
    using namespace std;
    //求最大公约数,辗转相除法
    long long gonyue(long long a,long long b)
    {
    	if(b==0) return a;
    	else return gonyue(b,a%b);
    }
    //求最大公倍数
    long long gonbei(long long a,long long b)
    {
    	return a*b/gonyue(a,b);
    } 
    int main()
    {
       		int n;
    		scanf("%d",&n);
       		long long r1,r2,t1,t2;
       		while(n--)
       		{
       			scanf("%lld/%lld %lld/%lld",&r1,&t1,&r2,&t2);
       			int x=gonyue(r1,t1);
       			r1/=x;
       			t1/=x;
       			x=gonyue(r2,t2);
       			r2/=x;
       			t2/=x;
       			//分母求最大公约
    			int s1=gonyue(t1,t2);
    			//分子求最小公倍数
    			int s2=gonbei(r1,r2);
    			if(s2%s1==0)
    			{
    				printf("%lld
    ",s2/s1);
    			 }else
    			 {
    			 	printf("%lld/%lld
    ",s2,s1);
    			 }
    		}	
       		
    	
    }
    
  • 相关阅读:
    二分法
    The Distinguish of the share or static lib in MFC
    内部或外部命令
    The Memory Managerment of the Computer
    AfxWinInit
    NoSQL解决方案比较
    修改服务中可执行文件的路径
    MapReduce 笔记
    认识MongoDB
    Add a Console Application
  • 原文地址:https://www.cnblogs.com/YenKoc/p/12779926.html
Copyright © 2011-2022 走看看