#include <iostream> using namespace std; double val, p; //вводимые параметры значения функции и степень полинома //x - значение функции //res - значение, которое изменяется в процессе рекурсии по схеме Горнера //s - рассматриваемая текущая степень x double rec(double x, double res, double s) { if (s == 0.0) return res; return rec(x, x * res + s - 1, s - 1); } int main(){ cin >> val >> p; //старший коэффициент в схеме Горнера сначала сносится вниз, //поэтому его передаем в качестве начального параметра для результата cout << fixed << rec(val, p, p) << endl; return 0; }
Программа:
Pascal:
function summ(n: integer): integer;
begin
n := abs(n);
while n > 0 do begin
result := result + n mod 10;
n := n div 10;
end;
end;
var
n1, n2, n3: integer;
begin
write('n1 = '); readln(n1);
write('n2 = '); readln(n2);
write('n3 = '); readln(n3);
if (summ(n1) > summ(n2)) and (summ(n1) > summ(n3)) then
writeln('Первое число')
else
if (summ(n2) > summ(n1)) and (summ(n2) > summ(n3)) then
write('Второе число')
else
write('Третье число');
end.
using namespace std;
double val, p;
//вводимые параметры значения функции и степень полинома
//x - значение функции
//res - значение, которое изменяется в процессе рекурсии по схеме Горнера
//s - рассматриваемая текущая степень x
double rec(double x, double res, double s)
{
if (s == 0.0)
return res;
return rec(x, x * res + s - 1, s - 1);
}
int main(){
cin >> val >> p;
//старший коэффициент в схеме Горнера сначала сносится вниз,
//поэтому его передаем в качестве начального параметра для результата
cout << fixed << rec(val, p, p) << endl;
return 0;
}