
Паскаль. вычислить сумму трех членов прогрессии 1, 1+1/2, 1+1/3, 1+1/4... которые меньше заданного
числа В где 1<В<2

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

var b,sum:real; count, n:integer;
begin
readln(b);
count:=0;
n:=1;
while count<>3 do begin
if (1+1/n)<b then begin
sum:=sum+(1+1/n);
count:=count+1;
end;
n:=n+1;
end;
writeln('suma: ',sum);
end.



Для вычисления суммы трех членов прогрессии, которые меньше заданного числа B, нам нужно сначала найти эти три члена. Заметим, что первый член равен 1, а каждый следующий член больше предыдущего на 1/i, где i - номер члена прогрессии.
Таким образом, чтобы найти второй член, нужно решить неравенство 1+1/i < B, что эквивалентно i > 1/(B-1). Заметим, что i является целым числом, поэтому мы можем округлить 1/(B-1) до ближайшего целого в большую сторону и получить номер второго члена прогрессии.
Аналогично, чтобы найти третий член, нужно решить неравенство 1+1/i+1 < B, что эквивалентно i > 1/(B-2)-1/(B-1). Мы можем округлить это число до ближайшего целого в большую сторону и получить номер третьего члена прогрессии.
Итак, мы можем вычислить сумму трех членов прогрессии, которые меньше заданного числа B, следующим образом:
cssvar
B: real;
i1, i2, i3: integer;
sum: real;
begin
readln(B);
i1 := 1;
i2 := ceil(1/(B-1));
i3 := ceil(1/(B-2)-1/(B-1));
sum := 1 + 1/2 + 1/3;
if i2 > i1 then sum := sum + 1/i2;
if i3 > i2 then sum := sum + 1/i3;
writeln(sum);
end.
Здесь мы считываем значение B, вычисляем номера второго и третьего членов прогрессии, затем вычисляем сумму трех членов, учитывая только те члены, которые меньше B. Обратите внимание, что мы используем функцию ceil
для округления вверх до ближайшего целого числа.


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








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