SETI
 Аватар для orestsyn
64 / 49 / 18
Регистрация: 09.04.2018
Сообщений: 210

Задачка про кенгуру

27.07.2018, 14:22. Показов 1827. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Нашел задачку на https://www.hackerrank.com/cha... oo/problem.
Не могу организовать цикл. Нужен цикл который прервётся когда одно значение станет больше второго или равным ему. Но мой код почему-то не работает.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Kangaroo
{
    class Program
    {
        static void Main()
        {
            int x1=0, v1=0, x2=0, v2=0;
            string[] s = Console.ReadLine().Split(' ');
            x1 = Convert.ToInt32(s[0]);
            v1 = Convert.ToInt32(s[1]);
            x2 = Convert.ToInt32(s[2]);
            v2 = Convert.ToInt32(s[3]);
            string result = Cangaroo(x1, v1, x2, v2);
            Console.WriteLine(result);
            
            Console.ReadKey();
        }
        static string Cangaroo(int x1,int v1,int x2, int v2) 
        {
            if (v2 < v1)
            {
                for (int t = 0; true; t++)
                {
                    x1 += v1;
                    x2 += v2;
                    if (x1 == x2 && x1 > x2) break;
                }
                if (x1 == x2) return "YES";
                else return "NO";
            }
            else return "NO";
        }
    }
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.07.2018, 14:22
Ответы с готовыми решениями:

Задачка про кирпичики
У нас есть форма. В ней надо создать 6*5 кирпичей (прямоугольников). Высота кирпича - 2. Ширина - 3. Расстояние между кирпичами - 1. Всё...

Задачка про домино
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace...

Задачка про 2 прямоугольника
Помогите написать код. using System; namespace Rectangles { public static class RectanglesTask { // Пересекаются ли...

5
 Аватар для Wolflind
127 / 107 / 31
Регистрация: 17.03.2016
Сообщений: 445
Записей в блоге: 1
27.07.2018, 15:23
Лучший ответ Сообщение было отмечено orestsyn как решение

Решение

(x1 == x2 && x1 > x2)
вы указали И
не может быть одновременно больше и равен
&& и
|| или


так к слову
C#
1
else return "NO"
else тут лишний так как если не выполнится if (x1 == x2) то в даже без else выполнится return "NO"
в обоих случаях и можно вместо

C#
1
2
 if (x1 == x2) return "YES";
                else return "NO";
сделать так
C#
1
return (x1 == x2)?"YES":"NO";
string возвращать тоже излишне лучше вернуть bool так как у вас всего 2 варианты

по поводу
C#
1
2
3
4
5
6
7
for (int t = 0; true; t++)
{
                    x1 += v1;//это будет выполнено как минимум 1 раз
                    x2 += v2;//и это а если x1 == x2 || x1 > x2 изначально верно?
                    // может стоит if (x1 == x2 && x1 > x2) break; поставить в начале цикла?
                    if (x1 == x2 && x1 > x2) break;
}
C#
1
for (int t = 0; true; t++)
сразу не заметил зачем так ?
не проще ли
C#
1
while(true)
первый раз вижу чтоб так фор использовали

Добавлено через 4 минуты
да и вообще можно использовать >= и получится (x1 >= x2)
https://professorweb.ru/my/csh... 3/3_10.php
1
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
27.07.2018, 16:24
Цитата Сообщение от Wolflind Посмотреть сообщение
первый раз вижу чтоб так фор использовали
C#
1
2
3
4
            for (;;)
            {
               ...
            }
0
 Аватар для Wolflind
127 / 107 / 31
Регистрация: 17.03.2016
Сообщений: 445
Записей в блоге: 1
27.07.2018, 17:15
КОП, так да нормально но не for (int t = 0; true; t++) учитывая что t не используется
0
 Аватар для CEDOROK
0 / 0 / 0
Регистрация: 01.07.2018
Сообщений: 45
27.07.2018, 22:11
Цитата Сообщение от Wolflind Посмотреть сообщение
КОП, так да нормально но не for (int t = 0; true; t++) учитывая что t не используется
Господи Исуси не мучайте for, замени его на while.

вот это загадочный цикл, я думаю вы не понимает то что делает написанное, поэтому прокоментирую
C#
1
2
3
4
5
6
                for (int t = 0; true; t++)   //изнасилование цикла for
                {
                    x1 += v1;   //х1 = х1+v1
                    x2 += v2;   //x2 = x2+v2
                    if (x1 == x2 && x1 > x2) break;   //если х1=х2 и х1>x2 далее break;(и кстати х1 не может быть одновременно равным х2 и при этом одновременно быть его больше)
                }
быть может так будет лучше!? если я правильно понял логику вашего кода =)

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
bool target true;
while(target)//условие цикла
{
//тело цикла
                    x1 += v1;   //х1 = х1+v1
                    x2 += v2;   //x2 = x2+v2
                    if (x1 == x2)
                    {
                        return "YES";
                        target = false;
                    }
                    if (x1 > x2)
                    {
                        return "NO";
                        target = false;
                    }
}

Хотя в функциях которые возвращают одно из двух лучше вернуть bool а не string...
0
 Аватар для Wolflind
127 / 107 / 31
Регистрация: 17.03.2016
Сообщений: 445
Записей в блоге: 1
01.08.2018, 21:13
CEDOROK,
Цитата Сообщение от CEDOROK Посмотреть сообщение
return "NO";
target = false;
вы хоть понимаете что написали?
ни в 1 на во 2 случаи
C#
1
target = false;
не выполнится до него даже не дойдет да и переменная вообще нужно
достаточно сделать
C#
1
while(true)
Добавлено через 1 минуту
я об этом уже писал выше
Цитата Сообщение от Wolflind Посмотреть сообщение
не проще ли
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.08.2018, 21:13
Помогаю со студенческими работами здесь

Задачка про ряд Тейлора
Только недавно начал учиться программировать на C# Взялся писать прогу на вычисление суммы в ряде Тейлора вот например ряд res = 2*...

Задачка про цех
На склад из цеха в течении 3-х смен поступают готовые изделия из 8-ми наименований, а затем отгружаются заказчиками. Написать программу...

Задачка про каналы
В районе города не работает компьютерная сеть. Известно количество узлов сети. Протестировав каналы, выяснили перечень рабочих каналов и...

задачка про рыбаков
на корме и на носу лодки длиной 6 м сидят два рыбака, масса которых 60 кг и 100 кг. Рыбаки решили поменятся местами. На какое расстояние...

Задачка про матрицы
Нужно задать произвольную квадратную матрицу (нужно для н-го порядка) 0 0 0 ... 0 0 0 0 ... 0 ............. 0 0 0 ... 0 И...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru