Для заданного числа N составьте программу вычисления суммы S=1/2-1/3+1/4-1/5+..+1/n, где n натуральное число.
Для заданного числа N составьте программу вычисления суммы S=1/2-1/3+1/4-1/5+..+1/n, где n натуральное число.
Ответ(ы) на вопрос:
Гость
///PascalABC.NET (версия 3.1, сборка 1198 от 11.03.2016)
var i,n: integer;
s:real;
begin
readln(n);
s:=0;
for i:=2 to n do begin
if i mod 2=0 then s:=s+1/i
else s:=s-1/i ;
end;
writeln(s);
end.
Гость
Попробуй так. Думаю должно работать для умеренно небольшого n (во всяком случае до 8 или 9), смотря на сколько хватит стека. При больших n будет вылетать по ошибке памяти, наверное.
Компилятора под рукой нет, не тестировал, может где баг сидит. Попробуй у себя, если что будет не так, то напиши.
Вводимое число должно быть больше или равно 2, иначе прога сбойнёт.
-------------------------------------------------------
program Bobsfeel ;
var n: integer ;var s: real ;
function sm ( i : integer ) : real ; var znak : integer ; begin if ( i = 2 ) then sm := 0.5 else begin if ( i % 2 = 1 ) then znak := -1 else znak := 1 ; sm := znak / i + sm ( i - 1 ) ; end ;end ; begin write('vvdiete n >= 2 _') ; readln(n) ;
s := sm ( n ) ; writeln('S= ' , s ) ; end.
Не нашли ответ?
Похожие вопросы