• Помогите разобраться с задачей по информатике:
    укажите наибольшее трехзначное натуральное число, при вводе которого эта программа напечатает сначала 2, потом - 6
    var x,a,b: longint;
    begin
    readln(x)
    a : =0; b:=1;
    while x>0 do begin
    if x mod 2 >0 then
    a:=a+1
    else
    b:=b+(x mod 5);
    x:=x div 5;
    end;
    writeln(a); write(b);
    end.

    Понимаю, что в пятиричной записи исходного числа подсчитываются четные цифры - их 2, а также сумма нечетных остатков при делении на 5 равна 5 (так как 6-1). В пятиричной записи исходного числа должны участвовать цифры 3 и 1. Но сколько разрядов в пятиричной записи, какие там четные цифры и как они расставлены, я не могу понять.

Ответы 2

  • Да прогу-то я и сам написать могу! Надо теоретическими методами! Это ж ЕГЭ!
    • Автор:

      chippy
    • 5 лет назад
    • 0
  • "...напечатает сначала 2, потом - 6" -- это значит a=2 и b=6?

    про пятеричные записи ничего не понял...  :) И ИМХО к чему такие сложности? И для чего нам комп и программа? Я подправил исходную прогу чтобы она выдавала все числа подходящие по условию

    var x,a,b: longint;

    begin

       for var i := 999 DownTo 100 do begin

           a := 0;

           b := 1;

           x := i;

           while x>0 do begin

               if x mod 2 > 0 then a := a+1 else b := b+(x mod 5);

               x := x div 5;

           end;

           if (a = 2) and (b = 6) then writeln('x = ', i, ' a = ', a, ' b = ',b);

       end;

    end.

    прога проводит расчет для всх трехзначных чисел от 999 до 100

    итого мы видим что максимальное подходящее число это 960

    при необходимости прогу можно переделать чтобы она находила только максимальное число.

    • Автор:

      choi
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years