Переделать: вывести TRUE, если число является степенью числа 3 и FALSE в противном случае - C (СИ)
Формулировка задачи:
Ввести целое число. Вывести TRUE ,если число является
степенью числа 3 и FALSE в противном случае.Вот задание
Вот программка,Препод сказал переделать ее так , чтобы выодилась таблица от 1 до 100 и было написано 1 false,2 false ,3 true и так далее.Помогите пожалуйста
#include <stdio.h>
void main (void)
{
const int koef=3;
int a;
printf("Zapili chislo a: ");
scanf ("%d", &a);
int i=1;
while(1)
{
i*=koef;
if(i==a)
{
printf("true\n");
getch();
break;
}
else if (i > a)
{
printf("false\n");
getch();
break;
}
}
return 0;
}Решение задачи: «Переделать: вывести TRUE, если число является степенью числа 3 и FALSE в противном случае»
textual
Листинг программы
#include <stdio.h>
void Step3(int n)
{ int n0 = n;
while(n>1) {
if (n%3) {
printf("%3d FALSE\n", n0);
return;
}
n /= 3;
}
printf("%3d TRUE\n", n0);
}
void main (void)
{ int n;
for(n=1; n<=100; n++) Step3(n);
}
Объяснение кода листинга программы
- Включаем заголовочный файл stdio.h для использования функций вывода
- Определяем функцию Step3, которая принимает целочисленный аргумент n
- Инициализируем переменную n0 значением аргумента n
- Запускаем цикл while, который выполняется до тех пор, пока n больше 1
- Проверяем, делится ли n на 3 без остатка. Если да, то выводим n0 и возвращаем управление
- Если n делится на 3, то выполняем деление n на 3 и присваиваем результат переменной n
- Если n не делится на 3, то выводим n0 и возвращаем управление
- После цикла while выводим n0 и значение TRUE
- Определяем функцию main, которая не принимает аргументов
- Запускаем цикл for, который выполняется от 1 до 100
- Для каждого значения n вызываем функцию Step3
- После выполнения всех итераций цикла for программа заканчивается