Задачи с рекурсивными функциями и перегрузкой функций - 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;
}

Объяснение кода листинга программы

  1. Включаем заголовочный файл iostream.h, который содержит определения стандартных потоков ввода-вывода
  2. Определяем функцию opt_pow, которая принимает два аргумента типа double и int. Первый аргумент x - это число, второй аргумент n - это целое число.
  3. Внутри функции opt_pow создаем переменную типа double с именем tmp.
  4. Проверяем условие n==0. Если оно истинно, то возвращаем 1.
  5. Если условие n==0 не выполняется, то проверяем условие (n % 2)==0. Если оно истинно, то выполняем следующие действия:
    1. Вызываем функцию opt_pow с аргументами x и (n/2) и сохраняем результат в переменную tmp.
    2. Возвращаем значение tmp*tmp.
  6. Если условие (n % 2)==0 не выполняется, то возвращаем значение x*opt_pow(x,(n-1)).
  7. В функции main считываем значения переменных z и n с помощью функции cin.
  8. Выводим значение переменной z с помощью функции cout.
  9. Выводим значение переменной n с помощью функции cout.
  10. Вызываем функцию opt_pow с аргументами z и n и выводим результат с помощью функции cout.
  11. Возвращаем 0, чтобы указать, что программа успешно завершилась.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.077 из 5
Похожие ответы