Предмет: Информатика,
автор: oxxxyversus
Рекурсия в C++
Только начинаю изучать C++. Подскажите в чем ошибка. Нужно чтобы числа от 1 до 10 возводилось в степень, вводимую с клавиатуры. При это нельзя использовать
math.h/cmath
#include
using namespace std;
int calculatePower(int, int);
int main()
{
int base, powerRaised, result, i;
cout << "Enter power number(positive integer): ";
cin >> powerRaised;
result = calculatePower(base, powerRaised);
cout << "1 2 3 4 5 6 7 8 9 10 " << " ^ " << powerRaised << " = " << result;
cout << i << " ";
}
int calculatePower(int base, int powerRaised)
{
if (powerRaised > 0){
for(int i=1; i<11;i++){
base = i*calculatePower(i, powerRaised-1);
return base;
}
}
return 1;
}
Ответы
Автор ответа:
1
Ответ:
Объяснение:
Вот исправленный вариант
Цикл перенести в main
Переписана функция вычисления степени,
надо воспользоваться рекурсивным вычислением степени,
а именно x^n = x*x^(n-1).
#include <iostream>
using namespace std;
int calculatePower(int, int);
int main() {
int base, powerRaised, result, i;
cout << "Enter power number(positive integer): ";
cin >> powerRaised;
for (int i = 1; i < 11; i++) {
result = calculatePower(i, powerRaised);
cout << i << " ^ " << powerRaised << " = " << result << endl;
}
}
int calculatePower(int base, int powerRaised) {
if (powerRaised > 0) {
return base * calculatePower(base, powerRaised - 1);
}
return 1;
}
Похожие вопросы
Предмет: Английский язык,
автор: v7sm5u7
Предмет: Другие предметы,
автор: Nastya00700
Предмет: Русский язык,
автор: настя11летррр
Предмет: Алгебра,
автор: limdagazgirieva59161
Предмет: Алгебра,
автор: limdagazgirieva59161