BMW535
07.11.2021 12:25

Эта задача с открытыми тестами. Ее решением является набор ответов, а не программа на языке программирования. Тесты указаны в самом условии, от вас требуется лишь ввести ответы на них в тестирующую систему. В странах А и В считают время по-разному. В одном часе в стране А ровно M1 минут, а в одном дне ровно H1 часов. В стране В в одном часе ровно M2 минуты, а в одном дне ровно H2 часов. Минуты в обеих странах считаются одинаково. В какой-то момент в стране А началась засуха. Правительство этой страны знает, что в стране В засуха длилась ровно K дней (по исчислению страны B), и попросило ученых дать ответ на вопрос: «Как долго продлится засуха в стране А?». По подсчетам ученых, если сравнивать полное количество минут, то засуха в стране А будет дольше в T раз, чем в стране B. Через какое время страна А победит засуху по исчислению страны А? Выходные данные Для каждого теста требуется ввести в тестирующую систему три целых числа через пробел в следующем формате: KK HH MM где: KK - количество дней засухи в стране А по исчислению времени страны А. HH - количество часов засухи в стране А по исчислению времени страны А с учетом того, что уже KK дней. MM - количество минут засухи в стране А по исчислению времени страны А с учетом того, что уже KK дней и HH часов. Примечание Например, если K=5 , M1=7, H1=5, M2=10, H2=10, T=2 , то засуха бы продолжалась 28 дней 2 часа и 6 минут по исчислению времени страны А. ответ выглядел бы следующим образом: 28 2 6 Тест №1: K=1 , H1=1, M1=1, H2=1, M2=1, T=1 ; Тест №2: K=1 , H1=7, M1=2, H2=2, M2=7, T=1 ; Тест №3: K=2 , H1=4, M1=16, H2=8, M2=4, T=4 ; Тест №4: K=41 , H1=82, M1=94, H2=47, M2=8, T=93 ; Тест №5: K=41 , H1=45, M1=82, H2=4, M2=8, T=7 ; Тест №6: K=4 , H1=7, M1=32, H2=9, M2=4, T=4 ; Тест №7: K=40 , H1=16, M1=99, H2=26, M2=69, T=50 ; Тест №8: K=5 , H1=30, M1=29, H2=85, M2=29, T=48 ; Тест №9: K=22 , H1=85, M1=90, H2=86, M2=29, T=19 ; Тест №10: K=2 , H1=52, M1=60, H2=46, M2=76, T=33 . Формат результата Введите в поле три числа, разделенные пробелом - ответы на тест 4.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
volfxeniya
23.01.2022 01:42

Linq используется для генерации последовательности

using System.Linq;

Длина последовательности задаётся тут.

private static int Size => 7

Разберём главный код.

По умолчанию Rand имеет большой разброс. Поэтому мы хотим его ограничить, но так, чтобы мы точно не знали значения max и min. (чтобы искать по-честному). Этого можно не делать, но будут страшные значения генерироваться.

Для этого генерируем случайно крайние значения диапазона генерации.

int seedMin = new Random().Next(1, 40);

int seedMax = new Random().Next(seedMin + 5, seedMin + 40);

Далее генерируем саму последовательность.

var arr = Enumerable  //Класс из Linq для работы с перечислениями

              .Repeat(0, Size) // Задаём количество

              .Select(_ => new Random().Next(seedMin, seedMax)) // Для каждого элемента генерируем случайное значение

              .ToArray(); // Делаем массивом

Ну а теперь, можно заняться поиском и вычислением.

int max = arr[0], min = arr[0]; // Предполагаем max и min первым элементом

foreach (var el in arr) {

        max = Math.Max(el, max); //  Если очередной больше - заменяем max

        min = Math.Min(el, min); //  Если очередной меньше - заменяем min

}

Теперь мы нашли минимальным и максимальный элементы. Нам надо убрать их из последовательности ровно по одному разу. Для этого создаём переменные-флаги типа bool. Если наткнёмся на max или min при расчете, то пропустим их и отметим, что уже встречали.

Создадим переменную для произведения и приравняем к 1 (если 0, то произведение будет 0).

int product = 1;

bool maxIsCatched = false, minIsCatched = false;

Ищем произведение.

foreach (var el in arr)

          {

              if (!maxIsCatched && el == max) // Если не встречали до этого и встретили сейчас

              {

                  maxIsCatched = true; //Запоминаем факт встречи

                  continue; // Пропускаем шаг

              }

              if (!minIsCatched && el == min) // По аналогии но с min

              {

                  minIsCatched = true;

                  continue;

              }

              product *= el; // Это всё равно, что написать  product = product * el

          }

Далее просто выводим результаты.

Сначала выводим сгенерированную последовательность.

Затем найденные max, min и product.

PrintArr(arr);

Console.WriteLine($"Max: {max}; Min: {min}; Product: {product}.");

Метод для печати последовательности написан самостоятельно и выглядит так.

private static void PrintArr<T>(IEnumerable<T> arr)

{

     foreach (var el in arr) // Перебираем

     {

          Console.Write(el); // Печатаем

           Console.Write(" ");

     }

     Console.WriteLine();

}

<T> используется для того, чтобы не зависеть от значений последовательности. Туда можно запихнуть любой массив или список.

IEnumerable<T> - обобщение для любой перечислимой коллекции.

0,0(0 оценок)
Ответ:
MihailoMK
26.10.2022 06:29

Код:

using System;namespace ThisAnswerIsNotMine {    class Program    {        private static int a;        private static int b;        private static int c;        private static int d;        private static void Main()        {            int.TryParse(Console.ReadLine()!, out a);            int.TryParse(Console.ReadLine()!, out b);            int.TryParse(Console.ReadLine()!, out c);            int.TryParse(Console.ReadLine()!, out d);                        Console.WriteLine((a / c) * (b / d) >= (b / c) * (a / d) ? "Широкая" : "Узкая");        }    }}
Написать на С# Имеется стол прямоугольной формы размером а х b (а и b — целые числа, а > b). В ка
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота