Вывести на экран чётные положительные степени числа 2, не большие, чем 2^n - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Не могу понять в чём причина. Кажется простая задачка, а проходит всего лишь 10 тестов из 22. Подскажите, пожалуйста, что я не так написал?
Напишите программу, которая вводит натуральное число N и выводит на экран чётные положительные степени числа 2, не большие, чем 2N, в порядке убывания.

Входные данные

Входная строка содержит одно натуральное число N.

Выходные данные

Программа должна вывести в одну строчку через пробел чётные положительные степени числа 2, не большие, чем 2N, в порядке убывания. Если таких нет, программа должна вывести число 0.

Примеры

Входные данные

Выходные данные

9 256 64 16 4
Листинг программы
  1. #include <stdio.h>
  2. int main() {
  3. int n;
  4. scanf("%d", &n);
  5. if (n < 3)
  6. putchar('0');
  7. else {
  8. int i, j;
  9. unsigned long long pow = 2ULL;
  10. for (i = n - 1; i > 1; --i)
  11. if (!(i & 1)) {
  12. for (j = 0; j < i - 1; ++j)
  13. pow *= 2ULL;
  14. printf("%llu ", pow);
  15. pow = 2ULL;
  16. }
  17. }
  18. putchar('\n');
  19. return 0;
  20. }

Решение задачи: «Вывести на экран чётные положительные степени числа 2, не большие, чем 2^n»

textual
Листинг программы
  1. for(;!(n<2);n-=2)

Объяснение кода листинга программы

В данном коде используется цикл for, который выполняется до тех пор, пока условие не станет истинным, то есть пока n < 2 не станет истинным. Внутри цикла присутствует оператор вычисления остатка от деления (!(n<2)). Этот оператор возвращает 1, если n меньше 2, и 0 в противном случае. То есть, цикл будет выполняться до тех пор, пока n не станет чётным. Далее, в теле цикла присутствует операция уменьшения n на 2 (n-=2). Это означает, что после каждой итерации цикла значение n будет уменьшаться на 2. Таким образом, код будет выполнять следующие действия:

  1. Начать выполнение цикла.
  2. Пока n не чётное, выполнять следующие действия: a. Уменьшить n на 2.
  3. После каждой итерации цикла проверять, является ли n чётным. Если да, то выполнение цикла прекращается и происходит переход к следующему шагу.
  4. Вывести на экран чётные положительные степени числа 2, не большие, чем 2^n. Важно отметить, что в данном коде нет вывода на экран внутри цикла, поэтому он будет выполняться бесконечно, пока не будет остановлен пользователем или не закончится выполнение программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.364 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы