В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия
kkkkkddd
kkkkkddd
09.12.2022 04:30 •  Информатика

Напишите программу, которая заполняет массив из n элементов степенями числа 2, начиная с 2 1 до 2 n , в обратном порядке. входные данные входная строка содержит размер массива n . гарантируется, что 0 < n ≤ 30 . выходные данные программа должна вывести содержимое массива: n первых степеней числа 2 в обратном порядке (последний элемент должен быть равен 2 1 ). примеры входные данные 5 выходные данные 32 16 8 4 2

Показать ответ
Ответ:
Sandrohka
Sandrohka
07.10.2020 03:21
Program n1;
var a: array[1..30] of integer;
n,i: integer;
function st(i: integer): integer;
begin
st:=1;
for i:=1 to i do st:=st*2
end;
begin
readln(n);
for i:=1 to n do a[i]:=st(i);
for i:=n downto 1 do write(a[i],' ');
end.
0,0(0 оценок)
Ответ:
katemurzik
katemurzik
07.10.2020 03:21
К сожалению, задание составлено некорректно.
0<N≤30 допускает случай N=0. Но тогда ряд значений должен оканчиваться 2⁰, а не 2¹, как указано. Да и массив из N элементов при N=0 - нечто странное. Поэтому принято решение считать значение N<1 ошибкой.

// PascalABC.NET 3.3, сборка 1555 от 21.10.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var n:=ReadInteger;
  Assert(n>0,'Нарушение: N<=0');
  var a:=SeqGen(n,2,i->2*i).Reverse.ToArray;
  a.Println
end.

Примеры
5
32 16 8 4 2

20
1048576 524288 262144 131072 65536 32768 16384 8192 4096 2048 1024 512 256 128 64 32 16 8 4 2
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота