Найти наибольшее натуральное число k, при котором 7k < m - C (СИ)
Формулировка задачи:
Помогите пожалуйста.
Пользователь вводит целое положительное число m. Найти наибольшее
натуральное число k, при котором 7k
< m. Вывести на экран таблицу
степеней числа 7 (от нулевой до 10-й). (Стандартную функцию возведения в
степень использовать не следует.)
Решение задачи: «Найти наибольшее натуральное число k, при котором 7k < m»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
//using namespace std;
int own_pow(int x,int y);// x^y
int main(){
int n=10,x=7,m,k;
printf("enter m=");
scanf("%d",&m);
k=(int)(m/7);
printf("\nk=%d\n",k);
for(int i=0;i<=n;i++){
printf("%d^%d=%d\n",x,i,own_pow(x,i));
}
system("pause");
return 0;
}
int own_pow(int x,int y){
int res=1;
if(x!=0&&y!=0&&x!=1){
for(int i=0;i<y;i++){
res*=x;
}
}
return x!=0?res:0;
}
Объяснение кода листинга программы
- В программе имеется два исходных значения: n=10 и x=7.
- Программа запрашивает у пользователя значение переменной m и сохраняет его в переменную m.
- Затем программа вычисляет значение переменной k как целочисленное значение частного от деления m на 7.
- Выводит значение переменной k на экран.
- Затем программа в цикле выводит на экран значения собственных степеней числа x от 0 до n.
- В функции own_pow(x,y) вычисляется собственная степень числа x по y.
- Если x не равно 0, 1 и y не равно 0, то в цикле от 0 до y-1 происходит умножение числа x на полученное значение собственной степени.
- Результат сохраняется в переменной res.
- Если x не равно 0, то возвращается значение res, иначе возвращается 0.
- В конце программы система приостанавливает выполнение программы до нажатия клавиши.
- Программа завершается с возвращением кода завершения 0.