В программе описан одномерный целочисленный массив с индексами от 0 до 10. В приведенном ниже фрагменте программы массив сначала заполняется, а потом изменяется:
for i:=0 to 10 do
A[i]:= i + 1;
for i:=1 to 9 do
A[i+1]:= A[i];
Чему будут равны элементы этого массива?
1) 1 1 1 1 1 1 1 1 1 1 1
2) 11 10 9 8 7 6 5 4 3 2 1
3) 2 3 4 5 6 7 8 9 10 11
4) 1 2 2 2 2 2 2 2 2 2 2
ответ: 13
объяснение:
у нас для длины n = 1 может получиться только 8 и 9 - 2 числа
для n = 2 может получиться только 89, 88, 98 - 3 числа
что мы можем сделать для n = 3?
к предыдущим числам длиной 2 добавить 8
898
888
988
а также мы можем добавить 9 тогда, если последняя цифра числа не 9. Это получается только тогда, когда мы для чисел длиной 1 добавляли 8(
88, 98).
колво чисел для 3 = колво чисел для 2 + колво чисел для 1 = 2 + 3 = 5.
Получаем рекусивное соотношение
то есть чтобы узнать сколько получится чисел длиной n, нам надо добавить к кол-ву чисел длиной n - 1 добавить 8(эти числа могут гарантированно быть т.к. 9 нету) и прибавить количество чисел длиной n - 2 (то есть мы к ним добавили 8 и их длина получилась n - 1 и к ним еще добавили девятку (их длина стала n), чтобы гарантированно не было двух девяток подряд)
и так для 4 получается = кол-во 3 + кол-во 2 = 3 + 5 = 8
для 5 получается = кол-во 4 + кол-во3 = 8 + 5 = 13
ну кароче что то вроде последовательности Фибоначчи
и так можно написать программу которая вычислит колво для любой длины
А)
program num;
var
number: integer;
begin
read(number);
if (number mod 2 = 0) then
write('ДА')
else
write('НЕТ');
end.
Б)
program b;
var
first, second: integer;
begin
read(first, second);
if (first > second) then
write(first + second)
else
write(first * second);
end.
Объяснение:
А)
program num; // Название программы
var
number: integer; // Целочисленная переменная, хранящая вводимое с клавиатуры число
begin // Начало программы
read(number); // Считываем число с клавиатуры
if (number mod 2 = 0) then // Если остаток от деления значения переменной number на 2 = 0, тогда
write('ДА') // Выводим "Да"
else // Иначе
write('НЕТ'); // Выводим "Нет"
end. // Конец программы
Б)
program b; // Название программы
var
first, second: integer; // Целочисленные переменные, хранящие вводимые с клавиатуры числа
begin // Начало программы
read(first, second); // Считываем числа с клавиатуры
if (first > second) then // Если первое число > второго числа, тогда
write(first + second) // Выводим сумму этих чисел
else // Иначе
write(first * second); // Выводим произведение этих чисел
end. // Конец программы