Товарищи программисты что-то у меня не правильно в решении задачи (.(x+a)^2+a)^2+.+a)^2)+a)^2+a - C (СИ)
Формулировка задачи:
((...((x+a)^2+a)^2+...+a)^2)+a)^2+a
есть наброски но я тупой (
#include <stdio.h>
#include <locale.h>
#include <conio.h>
#include <math.h>
int n, i;
float x, a, sum;
void main(void) {
setlocale(LC_ALL, "rus");
printf("Введите число n\n");
scanf_s("%d", &n);
sum = pow(x + a, 2);
for (i = 1; i <= n; i++)
sum = pow(sum + a, 2);
if (i == n - 1)
{
sum = sum + a;
}
else {sum = pow(sum + a, 2);
}
printf("Вычисленное значение равно %f", sum);
_getch();
return;
}Решение задачи: «Товарищи программисты что-то у меня не правильно в решении задачи (.(x+a)^2+a)^2+.+a)^2)+a)^2+a»
textual
Листинг программы
double
foo (double x, double a, int n)
{
double y = x + a;
return n ? foo(y * y, a, n - 1) : y;
}
Объяснение кода листинга программы
В данном коде определен функцию foo, которая принимает три аргумента: x, a и n.
- Изначально, в строке с номером 3, переменная
yинициализируется как суммаxиa. - Затем, в строке с номером 4, функция
fooрекурсивно вызывается с аргументамиy * yиa, а также с уменьшенным на единицу значениемn. - Если значение
nравно нулю, то в строке с номером 4, функция возвращает значениеy. - Возвращаемое значение функции
fooбудет представлять собой результат вычисления выражения(x + a)^2 + a^2 + a.