• Помогите с двумя заданиями, заранее спасибо
    1)Ниже записан алгоритм. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 2.
    var x, a, b, c: integer;
    begin
    readln(x);
    a:= 0;
    b:= 0;
    while x > 0 do begin
    c:= x mod 2;
    if c = 0 then a:= a + 1
    else b:= b + 1;
    x:= x div 10;
    end;
    writeln(a);
    writeln(b);
    end.

    2)
    Ниже записана программа. Получив на вход число x, эта программа печатает два числа, L и M . Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 120.
    var x, L, M: integer;
    begin
    readln(x);
    L:=0;
    M:=1;
    while x > 0 do begin
    L:=L+1;
    M:= M*(x mod 8);
    x:= x div 8;
    end;
    writeln(L);
    write(M);
    end.

Ответы 1

  • 1) В переменной a вычисляется количество четных цифр в числе x, в переменной b - количество нечетных цифр. Общее количество цифр в числе = 3+2=5. Наименьшее пятизначное число, удовлетворяющее условиям = 10001.2) В переменной L вычисляется количество цифр в числе x, следовательно искомое число трехзначное. Значение 120 можно получить как результат 4*5*6 (все сомножетели >=1 и <=7). Так как в цикле x меняется по правилу x:=x div 8, то искомое число = 654(8) = 428(10).
    • Автор:

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

Войти через Google

или

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

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

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