Java 皮带碰撞时间计算

Java 皮带碰撞时间计算,java,algorithm,numbers,lcm,Java,Algorithm,Numbers,Lcm,迪斯先生和阿斯特先生是菲亚斯科钢铁厂的机械工程师。 他们被指派为自动手推车设计道路 铁矿石遍布冶炼厂。他们本该做的 自动手推车的两条环形道路。然而,由于错误 迪斯先生和阿斯特先生使环形道路彼此相切 其他(即两条圆形路径在一点上相互接触)。 每天早上8点,手推车从切点开始 并在各自的轨道上顺时针移动。这是很明显的 在某个点上,手推车会在 他们开始了。为了拯救手推车和 对工厂运营造成的损害 工厂要求你编写一个程序,让它听起来像一个 碰撞前10秒鸣笛,以便工头能够停止 为了避免碰撞,手推车停了下来。编

迪斯先生和阿斯特先生是菲亚斯科钢铁厂的机械工程师。 他们被指派为自动手推车设计道路 铁矿石遍布冶炼厂。他们本该做的 自动手推车的两条环形道路。然而,由于错误 迪斯先生和阿斯特先生使环形道路彼此相切 其他(即两条圆形路径在一点上相互接触)。
每天早上8点,手推车从切点开始 并在各自的轨道上顺时针移动。这是很明显的 在某个点上,手推车会在 他们开始了。为了拯救手推车和 对工厂运营造成的损害 工厂要求你编写一个程序,让它听起来像一个 碰撞前10秒鸣笛,以便工头能够停止 为了避免碰撞,手推车停了下来。编写一个程序 找出汽笛响之前经过的时间(以秒为单位)

public static int timeLapsed(int perimeter1、int speed1、int perimeter2、int speed2){
int越大,越小;
int结果=0;
如果(周长1>周长2){
更大=周长1;
较小=周长2;
}否则{
更大=周长2;
较小=周长1;
}

对于(int i=1;i计算碰撞前的距离时,考虑了周长较大的皮带。因此,速度不能任意选择,应为周长较大的皮带

变化

public static int timeLapsed(int perimeter1, int speed1, int perimeter2, int speed2) {
    int greater,smaller;
    int speed, result = 0;
    if(perimeter1 >  perimeter2)    {
        greater = perimeter1;
        smaller = perimeter2;
        speed = speed1;
    }   else    {
        greater = perimeter2;
        smaller = perimeter1;
        speed = speed2;
    }
    for(int i=1;i<=smaller;i++)     {
        if(((greater*i)%smaller)==0)    {
            result = greater*i;
            break;
        }
    }

    return result/speed-10;
}
public static int timeLapsed(int perimeter1、int speed1、int perimeter2、int speed2){
int越大,越小;
int速度,结果=0;
如果(周长1>周长2){
更大=周长1;
较小=周长2;
速度=速度1;
}否则{
更大=周长2;
较小=周长1;
速度=速度2;
}

对于(int i=1;i另一种替代方法,计算两条皮带所用时间的LCM,即碰撞时间

    public static int timeLapsed(int perimeter1, int speed1, int perimeter2, int speed2) {
    int timeForTrolley1 = perimeter1/speed1,timeForTrolley2 = perimeter2/speed2;
    int greater,smaller;
    int result = 0;
    if(timeForTrolley1 >  timeForTrolley2)  {
        greater = timeForTrolley1;
        smaller = timeForTrolley2;
    }   else    {
        greater = timeForTrolley2;
        smaller = timeForTrolley1;
    }
    for(int i=1;i<=smaller;i++)     {
        if(((greater*i)%smaller)==0)    {
            result = greater*i;
            break;
        }
    }

    return result-10;
}
public static int timeLapsed(int perimeter1、int speed1、int perimeter2、int speed2){
int timeForTrolley1=周长1/速度1,timeForTrolley2=周长2/速度2;
int越大,越小;
int结果=0;
if(timeForTrolley1>timeForTrolley2){
更大=timeForTrolley1;
较小=timeForTrolley2;
}否则{
更大=timeForTrolley2;
较小=timeForTrolley1;
}
对于(int i=1;i
    public static int timeLapsed(int perimeter1, int speed1, int perimeter2, int speed2) {
    int timeForTrolley1 = perimeter1/speed1,timeForTrolley2 = perimeter2/speed2;
    int greater,smaller;
    int result = 0;
    if(timeForTrolley1 >  timeForTrolley2)  {
        greater = timeForTrolley1;
        smaller = timeForTrolley2;
    }   else    {
        greater = timeForTrolley2;
        smaller = timeForTrolley1;
    }
    for(int i=1;i<=smaller;i++)     {
        if(((greater*i)%smaller)==0)    {
            result = greater*i;
            break;
        }
    }

    return result-10;
}