mvv-155
?>

Напишите программу, которая вводит натуральное число и находит все числа на отрезке [0, n], сумма цифр которых не меняется при умножении числа на 2, 3, 4, 5, 6, 7, 8 и 9 (например, число 9 используйте функцию для вычисления суммы цифр числа. паскаль

Информатика

Ответы

avto3132
Var
    n, i, aon_i, k: integer;
    f: boolean;

function AmountOfNumbers(n: integer): integer;
var
    s: integer;
begin
    s := 0;
    while n > 0 do
    begin
        s := s + n mod 10;
        n := n div 10;
    end;
    AmountOfNumbers := s;
end;

begin
    readln(n);
   
    for i := 0 to n do
    begin
        f := true;
        aon_i := AmountOfNumbers(i);
       
        for k := 2 to 9 do
            f := f and (aon_i = AmountOfNumbers(k * i));
        if f then writeln(i);
    end;
end.
aetolstih

1)   5

2)   0

3)   1

Объяснение:

Цикл for   ...   downto   ...   do выполняется если начальное значение переменной счётчика больше или равно конечному значению переменной счётчика

Цикл for   ...   to   ...   do выполняется если начальное значение переменной счётчика меньше или равно конечному значению переменной счётчика

1)

s = 0

для i от 10 до 6 выполнить s = s + 1

начальное значение (10) переменной счётчика (i) больше или равно конечному значению (6) переменной счётчика (i)

10 >= 6     (да   -   цикл выполняется)

количество повторений цикла равно начальное значение (10) переменной счётчика (i) минус конечному значению (6) переменной счётчика (i) плюс единица

количество повторений цикла = 10 - 6 + 1 = 4 + 1 = 5

Т.к. переменная s каждое повторение цикла увеличивается на одно и тоже число (1), то за весь цикл переменная s изменится на 1 * 5

Т.к. в начале s = 0, то

s = 0 + 1 * 5 = 5

2)

s = 0

для i от 8 до 3 выполнить s = s + 1

начальное значение (8) переменной счётчика (i) меньше или равно конечному значению (3) переменной счётчика (i)

8 <= 3     (нет   -   цикл не выполняется)

Т.к. цикл не выполняется, то переменная s остаётся равна тому, чему была равна в начале s = 0

3)

s = 1

для i от 2 до 10 выполнить s = s + 1

начальное значение (2) переменной счётчика (i) больше или равно конечному значению (10) переменной счётчика (i)

2 >= 10     (нет   -   цикл не выполняется)

Т.к. цикл не выполняется, то переменная s остаётся равна тому, чему была равна в начале s = 1

xeniagolovitinskaya4546
ответ:

1) 5

2) 0

3) 1

Объяснение:1) s:=0; for i:=10 downto 6 do s:=s+1;

Переменная s изначально равна 0. Потом идёт цикл от 10 вниз до 6, который каждый раз будет прибавлять к s единицу (s[новая] = s[старая] + 1). Цикл от 10 до 6 включительно, то есть он буде выполнятся 10-6+1=5 раз (+1 т.к. включительно). Получается мы 5 раз прибавляем к нулю 1. ответ: 0 + 1*5 = 5.

2)s:=0; for i:=8 to 3 do s:=s+1;

Переменная s изначально равна 0. Потом идёт цикл от 8 до 6, который выполнятся не будет, так как 8>6, и увеличиваясь на 1 каждый раз, он никогда не дойдет до 6. Для работы необходимо писать downto вместо to, то есть вниз до. Однако такового тут нет, поэтому цикл не выполняется и переменная s остаётся 0. ответ: 0.

3)s:=1; for i:=2 downto 10 dо s:=s+1;

Переменная s изначально равна 1. Потом идёт цикл от 2 вниз до 10, который выполнятся не будет, так как 2<10, и уменьшаясь на 1 каждый раз, он никогда не дойдет до 10. Для работы необходимо писать to вместо downto, то есть до, а не вниз до. Однако такового тут нет, поэтому цикл не выполняется и переменная s остаётся 1. ответ: 1.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Напишите программу, которая вводит натуральное число и находит все числа на отрезке [0, n], сумма цифр которых не меняется при умножении числа на 2, 3, 4, 5, 6, 7, 8 и 9 (например, число 9 используйте функцию для вычисления суммы цифр числа. паскаль
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Yelizaveta1848
gaina6678
barnkim
Sidorenko
Татьяна-Мария
sve34166163
самир1078
romolga3580
sashakrotova943
Максим
Vasilevskii
Vladimirovich-Aleksandrovna96
olma-nn477
vallium8354
kuziv31