Определить, является ли натуральное число n степенью числа 3 - C (СИ)

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

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

Определить, является ли натуральное число n степенью числа 3

Решение задачи: «Определить, является ли натуральное число n степенью числа 3»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. typedef enum { false, true } bool;
  4.  
  5. bool is_pow_3(unsigned num)
  6. {
  7.     if(num < 3 && num != 1)
  8.         return false;
  9.     while(num % 3 == 0)
  10.         num /= 3;
  11.     return num == 1;
  12. }
  13.  
  14. int main(void)
  15. {
  16.     unsigned int num;
  17.  
  18.     puts("If your number is not ending in 1,3,7,9, it is not a power of 3!\nOtherwise, enter your number");
  19.     scanf("%d",&num);
  20.  
  21.     if(is_pow_3(num))
  22.         puts("Yes!");
  23.     else
  24.         puts("No number is not a degree of 3");
  25.  
  26.     return 0;
  27. }

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

  1. Подключение необходимых библиотек
  2. Объявление типа bool для использования в функции
  3. Определение функции is_pow_3, которая принимает целое число и возвращает булево значение
  4. Проверка, является ли число меньше 3 и не равно 1. Если это так, то функция возвращает false
  5. Если число больше или равно 3, то в цикле while делим его на 3, пока оно не станет равным 1. Если число делится на 3 без остатка, то оно не является степенью 3.
  6. Последний шаг функции - проверка, равно ли число 1. Если это так, то функция возвращает true, иначе - false.
  7. Определение функции main
  8. Объявление переменной типа unsigned int для ввода числа
  9. Вывод сообщения с просьбой ввести число
  10. Считывание числа с помощью функции scanf
  11. Проверка, является ли число степенью 3 с помощью функции is_pow_3
  12. Вывод соответствующего сообщения в зависимости от результата проверки
  13. Завершение программы

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


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

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

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

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

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

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