|
|||
Код программы. include <iostream>. using namespace std;. int rek1(int a, int b). if (a == b) return 1;. if (a > b) return 1+rek1(a-b,b);. else return 1 + rek1(a , b-a);. int main(). cin >> a>> b;. cout<<\n <<reКод программы #include <iostream> using namespace std; int rek1(int a, int b) {
if (a == b) return 1;
if (a > b) return 1+rek1(a-b,b); else return 1 + rek1(a , b-a);
} int main() { int a, b; cin >> a>> b; cout<<"\n" <<rek1(a, b);
} Контрольный пример
2. Исполнитель умеет выполнять два действия: «+1», «*2». Составьте программу получения из числа 1 числа 100. Код программы #include <iostream> using namespace std; int rek(int a) { if (a == 100) return 100; if (a * 2 < 100) return rek(a * 2); else { return rek(a+1); }
} int main() { int a = 1; cout << rek(a); } Контрольный пример
3. Методом половинного деления решить уравнение sin x = x2 на отрезке [а; b] при х>0. Cчитать, что на заданном отрезке действительный корень существует. Код программы #include <iostream> #include <cmath>
using namespace std; double M_PI = 3.14; double func(double x) { // return (sin(M_PI * x / 180) - 1 / x); //return (sin(M_PI * x / 180) - (x * x)); return (sin(x) - (x * x)); } double find(double x0, double x1, double eps) { double left = x0, right = x1, x, fl, fr, f; int iter = 0; cout << "x0= " << x0 << " x1= " << x1 << " "; do { x = (left + right) / 2; f = func(x); if (f > 0) right = x; else left = x; iter++; } while (fabs(f) > eps&& iter < 20000000); // cout << iter << " iterations" << endl; return x; } int main() { setlocale(LC_ALL,"rus"); double a, b;
cout << "Введите a,b\n"; cin >> a >> b; cout << find(a, b, 0.000001); cin.get(); return 0; } Контрольный пример
|
|||
|