|
|||
Задание 3.1. Рекурсивные функцииЗадание 3.1. Рекурсивные функции 10.Индивидуальное задание
Код программы:
Задание 3.2. Разработка рекурсивной триады 10.Индивидуальное задание Найдите значение многочлена степени N по схеме Горнера. Задание степени многочлена, коэффициентов и аргумента предусмотрите в программе. Код программы: #include<iostream> using namespace std; double result(double x, double* a, int n) { if (n > 1) { return a[n] + result(x, a, n - 1) * x; } return a[0] * x + a[1]; } int main() { setlocale(LC_ALL, "rus"); int n = 0; cout << "Введите степень многочлена" << endl; cin >> n; double* a = new double[n + 1]; for (int i = 0; i <= n; i++) { cout << "Введите коофициент a" << i << endl; cin >> a[i]; } double x = 0.0; cout << "Введите x, при котором нужно посчитать функцию" << endl; cin >> x; cout << "Заданная функция в точке " << x << " = " << result(x, a, n) << endl; return 0; } Контрольный пример: Задание 3.3. Рекурсивные методы в решении задач 10.Индивидуальное задание В Фибоначчиевой системе счисления числа формируются по правилам: · Используются только символы 0 и 1; · Каждый разряд соответствует элементу последовательности Фибоначчи 1, 2, 3, 5, 8, …, то есть указывает на наличие или отсутствие такового; · В соседних разрядах не могут стоять символы 1, так как это автоматически означает формирование следующего за ними разряда. Например, 1710 = 1310 + 310 + 110 = 100101ф. Составьте программу перевода числа из десятичной системы в Фибоначчиевую. Считать входные данные введенными корректно. Код программы: #include <iostream> #include <vector> using namespace std;
vector<unsigned long> Fibo_array; //------------------------------------------------------------ // Записывает в Fibo_array все числа Фибоначи, <= N //------------------------------------------------------------ void record_Fibo_array(const unsigned long& N) { unsigned long F_p = 1; unsigned long F_pp = 1; for (unsigned long F = 1; F <= N; ) { Fibo_array.push_back(F); F = F_p + F_pp; F_pp = F_p; F_p = F; } } //------------------------------------------------------------ void Fibo_system(unsigned long& n, int index) { if (index < 0) return; unsigned long F = Fibo_array[index]; if (F > n) cout << 0; else { cout << 1; n -= F; } Fibo_system(n, --index); } //------------------------------------------------------------ int main() { unsigned long n = 10; record_Fibo_array(n); cout << n << " = "; Fibo_system(n, Fibo_array.size() - 1); //cin.get(); return 0; } Контрольный пример:
|
|||
|