profile
Размещено 5 лет назад по предмету Информатика от Аккаунт удален

Написать эту программу на С++ используя рекурсию

  1. Ответ на вопрос
    Ответ на вопрос дан lolejeis

    // factorial.cpp: определяет точку входа для консольного приложения.

    #include "stdafx.h"

    #include <iostream>

    using namespace std;

    unsigned long int factorial(unsigned long int);// прототип рекурсивной функции

    int i = 1; // инициализация глобальной переменной для подсчёта кол-ва рекурсивных вызовов

    unsigned long int result; // глобальная переменная для хранения возвращаемого результата рекурсивной функцией

    int main(int argc, char* argv[])

    {

    int n; // локальная переменная для передачи введенного числа с клавиатуры

    cout << "Enter n!: ";

    cin >> n;

    cout << n << "!" << "=" << factorial(n) << endl; // вызов рекурсивной функции

    system("pause");

    return 0;

    }

    unsigned long int factorial(unsigned long int f) // рекурсивная функция для нахождения n!

    {

    if (f == 1 || f == 0) // базовое или частное решение

    return 1; // все мы знаем, что 1!=1 и 0!=1

    cout << "Stept" << i << endl;

    i++; // операция инкремента шага рекурсивных вызовов

    cout << "Result= " << result << endl;

    result = f * factorial(f - 1); // функция вызывает саму себя, причём её аргумент уже на 1 меньше

    return result;

    }

  2. Ответ на вопрос
    Ответ на вопрос дан simbion0

    #include <iostream>

    #include <vector>


    int min_possitive(int a, int b)

    {

    if (a > 0)

    {

     if (b > 0)

     {

      return a < b ? a : b;

     }

     else

     {

      return a;

     }

    }

    else if (b > 0)

    {

     return b;

    }

    else

    {

     // Ошибка в случае если 2 числа отрицательны или равны 0

     return -1;

    }

    }


    int min(std::vector<int> vec, int size)

    {

    int temp;

    if (size == 1)

    {

     return vec[0];

    }


    temp = min(vec, --size);


    return min_possitive(vec[size], temp);

    }


    int main()

    {

    std::vector<int> vec(10);


    std::cout << "Enter 10 numbers separated by a space: ";

    for (auto& val : vec)

    {

     std::cin >> val;

    }


    int min_p = min(vec, vec.size());

    if (min_p == -1)

    {

     std::cout << "No positive numbers!" << std::endl;

    }

    else

    {

     std::cout << "Min == " << min_p << std::endl;

    }

    return 0;

    }

    1. Ответ на вопрос
      Ответ на вопрос дан Аккаунт удален
      А, все ясно, спасибо.
    2. Ответ на вопрос
      Ответ на вопрос дан simbion0
      Так должно работать
    3. Ответ на вопрос
      Ответ на вопрос дан simbion0
      int min_possitive(int a, int b)
      {
      if (a > 0)
      {
      if (b > 0)
      {
      if (a < b)
      {
      return a;
      }
      else
      {
      return b;
      }
      }
      else
      {
      return a;
      }
      }
      else if (b > 0)
      {
      return b;
      }
      else
      {
      // Ошибка в случае если 2 числа отрицательны или равны 0
      return -1;
      }
      }
    4. Ответ на вопрос
      Ответ на вопрос дан simbion0
      int min(std::vector vec, int size)
      {
      int temp;
      if (size == 1)
      {
      return vec[0];
      }

      temp = min(vec, --size);

      return min_possitive(vec[size], temp);
      }
    5. Ответ на вопрос
      Ответ на вопрос дан simbion0
      int main()
      {
      std::vector vec(10);

      std::cout << "Enter 10 numbers separated by a space: ";
      for (int i = 0; i < vec.size(); ++i)
      {
      std::cin >> vec[i];
      }

      int min_p = min(vec, vec.size());
      if (min_p == -1)
      {
      std::cout << "No positive numbers!" << std::endl;
      }
      else
      {
      std::cout << "Min == " << min_p << std::endl;
      }
      return 0;
      }
Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 5 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.