profile
Размещено 4 года назад по предмету Информатика от MaratGaniev

Даны два натуральных числа a и b. Найдите наибольшее значение отношения трехзначного числа из отрезка [a,b] к сумме его цифр.

Нужно написать компьютерную программу.
Прошу лишь только прояснить простым языком, что нужно делать? Я совсем не понимаю, что от меня хотят:(​

  1. Ответ на вопрос
    Ответ на вопрос дан 65biso2

    Объявить А и В. Произвести их ввод, если требуется.

    Объявить переменную, которая будет показывать максимальное отношение, например MaxRatio, приравнять её к нулю.

    Циклом перебрать все трехзначные числа на отрезке [A,B]. В цикле ввести условный оператор, если отношение текущего проверяемого числа к сумме его цифр больше, чем MaxRatio, то приравнять MaxRatio к текущему числу.

    Вызвать исключение, если меж числами А и В нет положительных трехзначных чисел.

    Могу составить на С++ или C#, если нужно.

  2. Ответ на вопрос
    Ответ на вопрос дан BobbyFresnel

    ===== PascalABC.NET =====

    1. Решение, максимально близкое к "школьному"

    begin

     var (a, b) := ReadInteger2;

     if a > b then  // обеспечим b > a

       Swap(a, b);

     if (a > 999) or (b < 100) then  // трехзначных чисел нет

       Write('Интервал [', a, ',', b, '] не содержит трехзначных чисел')

     else

     begin

       if a < 100 then  // обеспечим a >= 100

         a := 100;

       if b > 999 then  // обеспечим и b <= 999

         b := 999;

       // теперь у нас гарантировано только трехзначные числа

       var k := 0.0; // тут будем запоминать максимальное отношение

       for var n := a to b do  // организуем перебор чисел в цикле

       begin

         // вначале найдем m - сумму цифр числа

         var (m, p) := (0, n);

         while p > 0 do

         begin

           m += p mod 10;

           p := p div 10

         end;

         // найдем отношение n/m и если оно больше k, запишем в k

         if n / m > k then

           k := n / m;

       end;

       Print(k) // выведем результат

     end

    end.

    2. Современное, более короткое решение

    function Ratio(n: integer): real;

    begin

     var (t,s) := (n, 0);

     while t > 0 do

     begin

       s += t mod 10;

       t := t div 10

     end;

     Result := n / s

    end;

    begin

     var (a, b) := ReadInteger2;

     if a > b then  // обеспечим b > a

       Swap(a, b);

     if (a > 999) or (b < 100) then  // трехзначных чисел нет

       Write('Интервал [', a, ',', b, '] не содержит трехзначных чисел')

     else

     begin

       a := a.ClampBottom(100);

       b := b.ClampTop(999);

       // теперь у нас гарантировано только трехзначные числа

       Range(a,b).Select(t -> Ratio(t)).Max.Print

     end

    end.

    Объяснение:

    Задаем конкретные значения a и b, затем перебираем все трехзначные числа, попавшие в интервал [a,b]. Каждое число делим на сумму его цифр и из результатов деления оставляем наибольшее значение. Это так называемый однопроходный алгоритм, когда результат можно получить, обратившись к каждому значению один раз.

Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 5 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.