0

我正在解决这个问题

数轴上有两只袋鼠准备向正方向(即,向正无穷大)跳跃。第一只袋鼠从位置 x1 开始,每次跳跃以 v1 米的速度移动。第二只袋鼠从位置 x2 开始,每次跳跃以 v2 米的速度移动。给定每只袋鼠的起始位置和移动速度,你能确定它们是否会同时降落在同一个位置吗?

这是我的代码

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class Solution 
{
    static String kangaroo(int x1, int v1, int x2, int v2) 
    {
        // Complete this function
        String result = new String();
        int count = 0;
        if(x1 < x2 & v1 < v2)
        {
            result = "NO";
    }
    if(x2 < x1 & v2 < v1)
    {
        result = "NO";
    }
    int distance1 = 0, distance2 = 0;
    if (x1 > x2 & v2 > v1)
    {
        for (int i = 0; x2 > x1; i++)
        {
            x1+=v1;
            x2+=v2;
            if (x1 == x2)
            {
                result = "YES";
                count++;
                break;
            }
        }
    }
    //else
        //{
            if (x2 > x1 & v1 > v2)        
        {
            for (int i = 0; x1 > x2; i++)
        {
            x1+=v1;
            x2+=v2;
            if ( x1 == x2 )
            {
                result = "YES";
                count++;
                break;
            }
        }
        }
        //else
            //result = "NO";
    //}
    if (count == 0)
    {
        result = "NO";
    }
    return result;
}

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    int x1 = in.nextInt();
    int v1 = in.nextInt();
    int x2 = in.nextInt();
    int v2 = in.nextInt();
    String result = kangaroo(x1, v1, x2, v2);
    System.out.println(result);
}

}

输入:0 3 4 2 我得到输出:NO 正确输出:YES

提前致谢

PS - 我正在寻找我的代码的问题

4

1 回答 1

0

您的方法可以简化为:

static String kangaroo(int x1, int v1, int x2, int v2) {
     return (x2 - x1)%(v1-v2) == 0 ? "YES" : "NO";
}
于 2017-09-26T14:00:50.517 回答