Задание
Соотнесите алгоритм, использующий рекурсивную функцию с аналогичным алгоритмом, реализующим решение с помощью динамики.
- Объекты 1
- int f\(int n\) {
if \(n == 0\)
return 0;
else if \(n == 1\)
return 1;
else
return f\(n \- 1\) + f\(n \- 2\);
} - int f\(int n\) {
if \(n == 0\)
return 0;
else
return n % 10 + f\(n / 10\);
} - void f\(int n, int p = 2\) {
if \(n \\lt = 1\)
return 0;
while \(n % p == 0\) {
cout << p << endl;
n /= p;
}
f\(n, p \+ 1\);
} - int f\(int n\) {
if \(n == 0 \|\| n == 1\)
return 1;
else
return n * f\(n \- 1\);
}
- int f\(int n\) {
- Объекты 2
- int f\(int n\) {
int a = 0;
int b = 1;
if \(n == 0\) {
return a;
}
else if \(n == 1\) {
return b;
}
else {
for \(int i = 2; i \\lt = n; i\+\+\) {
int temp = b;
b = a + b;
a = temp;
}
return b;
}
} - int f\(int n\) {
int sum = 0;
while \(n \\gt 0\) {
int digit = n % 10;
sum += digit;
n /= 10;
}
return sum;
} - void f\(int n\) {
int p = 2;
while \(n \\gt 1\) {
if \(n % p == 0\) {
cout << p << endl;
n /= p;
}
else {
p++;
}
}
} - int f\(int n\) {
int result = 1;
for \(int i = 1; i \\lt = n; i\+\+\) {
result *= i;
}
return result;
}
- int f\(int n\) {