
Помогите, пожалуйста Напишите функцию sum вида function sum(n: integer): real, которая вычисляет
и возвращает следующую сумму: 1+1/2+1/3...+1/n

Ответы на вопрос

s:real;
function sum(n:integer):real;
begin
if n=1 then
sum:=1
else
sum:=(1/n)+sum(n-1);
end;
begin
writeln('n=');
readln(n);
writeln('sum=',sum(n));
readln;
end.



Var A:real;
Begin
A:=1;
For N:= 2 to N do
A:=A+(1/N);
sum:=A
End;
Var N:integer;
Begin
Write('N = ');ReadLn(N);
Write(sum(N))
End.



Конечная сумма в вашем вопросе является гармоническим рядом. Для вычисления такой суммы можно использовать простой цикл и постепенно добавлять к общей сумме каждый член ряда. Вот как может выглядеть такая функция на языке Python:
pythondef sum(n: int) -> float:
total = 0.0
for i in range(1, n+1):
total += 1.0/i
return total
Эта функция берет целочисленный аргумент n
и возвращает значение типа float
. Она инициализирует переменную total
нулем и затем проходит по всем целым числам от 1 до n
, добавляя каждый член ряда к общей сумме. В конце она возвращает общую сумму.
Вы можете вызвать эту функцию с любым положительным целым числом, чтобы вычислить сумму гармонического ряда до заданного числа. Например:
python>>> sum(1)
1.0
>>> sum(5)
2.283333333333333
>>> sum(10)
2.9289682539682538
Обратите внимание, что сумма гармонического ряда растет очень медленно, поэтому для больших значений n
может потребоваться много времени для вычисления.


Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili