Member 11846821 Ответов: 2

Алгоритм Для - может достигать от одной точки (a, b) до другой (C, d).


What would be the algorithm for following question- 
If you are given input(a,b) is it possible to reach(c,d) i.e from (a,b) you can go (a+b,b) or (a,a+b) n number of times .Answers should be in ‘yes’ or ‘No’.
 eg- i.e if ur (a,b) is -(1,4) it can move to (5,4)==>> (5,9)==>>(5,14) and so on. 
Java Syntax-
 String is Possible(int a, int b, int c, int d). { }


Что я уже пробовал:

Я думаю, что график поможет, но я не уверен в этом .

[no name]

Это зависит от обстоятельств. Что вы изучали в классе, когда получили это домашнее задание?

2 Ответов

Рейтинг:
2

CarelAgain

(х0, У0) может достигать (Х1, У1), если х0 может достигать Х1 и У0 может достигать У1, полагая х0 &ЛТ;= Х1 и У0 &ЛТ;= У1, то через bool, чтобы указать, является ли (х0, У0) может достигать (Х1, У1) в следующем может ли он

using System;

namespace CanReach
{
    internal class Program
    {
        public static int CanReachOne(int x, int y, int tx)
        {
            int f = 0;
            while (x < tx)
            {
                x += y;
                f++;
            }
            return x == tx ? f : -1;
        }

        public static bool CanReach(int a, int b, int c, int d)
        {
            int aCan = CanReachOne(a, b, c);
            int bCan = CanReachOne(b, a, d);
            return aCan > -1 && bCan > -1;
        }

        private static void Main(string[] args)
        {

            Console.WriteLine("({0},{1}) => ({2},{3}) = {4}", 1, 4, 5, 14, 
                              CanReach(1, 4, 5, 14));
            Console.ReadLine();
        }
    }
}


Patrice T

Боюсь, что этот ответ неверен.
Из (1,2) попробуйте достичь (8,13)

Рейтинг:
2

Patrice T

Мы не делаем вашу домашнюю работу.
Домашнее задание не предназначено для проверки ваших навыков просить других людей выполнять вашу работу, оно предназначено для того, чтобы помочь вашему учителю проверить ваше понимание пройденных вами курсов, а также проблем, возникающих при их применении.
Любая ваша неудача поможет учителю выявить ваши слабости и наметить меры по их исправлению.
Итак, попробуйте, перечитайте свои уроки и приступайте к работе. Если вы застряли на конкретной проблеме, покажите свой код и объясните эту точную проблему, мы можем помочь.

Цитата:
Я думаю, что график поможет, но я не уверен в этом .
Если график может помочь, вы должны знать, почему, иначе это предположение.
Посмотрите на утверждения: вы находитесь на карте в координатах (a,b) и вам нужно достичь координат (c, d) на каждом шаге, вам разрешено только 2 хода. Попробуй собрать это воедино.

Для тестирования попробуйте перейти от (1,2) к (8,13)
Путь (1,2) => (3,2) => (3,5) => (8,5) => (8,13)