Определить, является ли натуральное число n степенью числа 3 - C (СИ)
Формулировка задачи:
Определить, является ли натуральное число n степенью числа 3
Решение задачи: «Определить, является ли натуральное число n степенью числа 3»
textual
Листинг программы
#include <stdio.h> typedef enum { false, true } bool; bool is_pow_3(unsigned num) { if(num < 3 && num != 1) return false; while(num % 3 == 0) num /= 3; return num == 1; } int main(void) { unsigned int num; puts("If your number is not ending in 1,3,7,9, it is not a power of 3!\nOtherwise, enter your number"); scanf("%d",&num); if(is_pow_3(num)) puts("Yes!"); else puts("No number is not a degree of 3"); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек
- Объявление типа bool для использования в функции
- Определение функции is_pow_3, которая принимает целое число и возвращает булево значение
- Проверка, является ли число меньше 3 и не равно 1. Если это так, то функция возвращает false
- Если число больше или равно 3, то в цикле while делим его на 3, пока оно не станет равным 1. Если число делится на 3 без остатка, то оно не является степенью 3.
- Последний шаг функции - проверка, равно ли число 1. Если это так, то функция возвращает true, иначе - false.
- Определение функции main
- Объявление переменной типа unsigned int для ввода числа
- Вывод сообщения с просьбой ввести число
- Считывание числа с помощью функции scanf
- Проверка, является ли число степенью 3 с помощью функции is_pow_3
- Вывод соответствующего сообщения в зависимости от результата проверки
- Завершение программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д