Ответы
// 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;
}
#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;
}
{
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;
}
}
{
int temp;
if (size == 1)
{
return vec[0];
}
temp = min(vec, --size);
return min_possitive(vec[size], temp);
}
{
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;
}