Задачи с рекурсивными функциями и перегрузкой функций - C (СИ)
Формулировка задачи:
Здравствуйте, нужно доделать лабу, большинство задач сделала, а эти не могу, не знаю как делать. Помогите пожалуйста.
7. Составьте программу, которая в зависимости от входных данных переводит часы и минуты в минуты или минуты – в часы и минуты. Используйте перегруженные функции. Например, при вводе 134 мин будет выдано значение 2 час 14 мин, а при вводе 2 час 14 мин – значение 134 мин.
8. Разработайте программу вычисления an натуральной степени n вещественного числа a за наименьшее число операций.
9. Дано натуральное число, кратное 3. Получите сумму кубов цифр этого числа, затем сумму кубов цифр получившегося числа и т.д. Проверьте на нескольких примерах, действительно ли в конечном итоге получится 153.
Решение задачи: «Задачи с рекурсивными функциями и перегрузкой функций»
textual
Листинг программы
#include <iostream.h>
double opt_pow(double x, int n)
{
double tmp;
if (n==0)
return 1;
else
if ((n % 2)==0)
{
tmp=opt_pow(x,(n/2));
return tmp*tmp;
}
else
return x*opt_pow(x,(n-1));
}
int main(int argc, char* argv[])
{
double z;
int n;
cout << "z=";
cin >> z;
cout << "n=";
cin >> n;
cout << opt_pow(z,n) << endl;
return 0;
}
Объяснение кода листинга программы
- Включаем заголовочный файл iostream.h, который содержит определения стандартных потоков ввода-вывода
- Определяем функцию opt_pow, которая принимает два аргумента типа double и int. Первый аргумент x - это число, второй аргумент n - это целое число.
- Внутри функции opt_pow создаем переменную типа double с именем tmp.
- Проверяем условие n==0. Если оно истинно, то возвращаем 1.
- Если условие n==0 не выполняется, то проверяем условие (n % 2)==0. Если оно истинно, то выполняем следующие действия:
- Вызываем функцию opt_pow с аргументами x и (n/2) и сохраняем результат в переменную tmp.
- Возвращаем значение tmp*tmp.
- Если условие (n % 2)==0 не выполняется, то возвращаем значение x*opt_pow(x,(n-1)).
- В функции main считываем значения переменных z и n с помощью функции cin.
- Выводим значение переменной z с помощью функции cout.
- Выводим значение переменной n с помощью функции cout.
- Вызываем функцию opt_pow с аргументами z и n и выводим результат с помощью функции cout.
- Возвращаем 0, чтобы указать, что программа успешно завершилась.