Проверить, является ли число N точной степенью двойки (Java -> Си) - C (СИ)

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

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

Точная степень двойки Дано натуральное число N. Выведите слово YES, если число N является точной степенью двойки, или слово NO в противном случае. Операцией возведения в степень пользоваться нельзя! Решение
Листинг программы
  1. public class Solution {
  2. public static int recursion(double n) {
  3. // Базовый случай
  4. if (n == 1) {
  5. return 1;
  6. } // Базовый случай
  7. else if (n > 1 && n < 2) {
  8. return 0;
  9. } // Шаг рекурсии / рекурсивное условие
  10. else {
  11. return recursion(n / 2);
  12. }
  13. }
  14. public static void main(String[] args) {
  15. double n = 64;
  16. // вызов рекурсивной функции
  17. if (recursion(n) == 1) {
  18. System.out.println("Yes");
  19. } else {
  20. System.out.println("No");
  21. }

Решение задачи: «Проверить, является ли число N точной степенью двойки (Java -> Си)»

textual
Листинг программы
  1. #include<stdio.h>
  2. int recursion(int n);
  3. int main(void)
  4. {
  5.     int n;
  6.     scanf("%d",&n);
  7.     if(recursion(n))
  8.     printf("YES\n");
  9.     else
  10.     printf("NO\n");
  11.     return 0;
  12. }
  13. int recursion(int n)
  14. {
  15.     if(n==2)
  16.     return 1;
  17.    
  18.     if(n%2)
  19.     return 0;
  20.     else
  21.     return recursion(n/2);
  22. }

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

  1. В начале кода подключается стандартная библиотека ввода-вывода .
  2. Определяется функция recursion(int n), которая будет использоваться для проверки числа на точность.
  3. В функции main() создается переменная типа int с именем n, в которую считывается число с помощью функции scanf().
  4. После считывания числа, вызывается функция recursion(n) и результат проверки сохраняется в переменную типа int с именем result.
  5. Затем выводится сообщение YES или NO в зависимости от значения переменной result.
  6. Функция main() возвращает 0, что означает успешный конец работы программы.
  7. В функции recursion(int n) выполняется проверка: если n равно 2, то функция возвращает 1.
  8. Если n не равно 2, то выполняется проверка: если n не делится на 2 без остатка, то функция возвращает 0.
  9. Если n делится на 2 без остатка, то функция вызывает саму себя, передавая в качестве аргумента значение n/2.
  10. Возвращаемое значение функции recursion(int n) используется для проверки числа на точность в функции main().
  11. Если функция recursion(int n) вернула 1, то выводится сообщение YES.
  12. Если функция recursion(int n) вернула 0, то выводится сообщение NO.

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


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

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

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

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

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

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