Помогите,срочно❣️ Программа в паскале,через while Дано натуральное число n.Вычислить сумму:P=1+3+5+..+(2n-1)
Answers & Comments
IlyaNazarev
У этой задачи есть более простой способ решения: заметим,что мы складываам подрят идущие нечетные числа,при этом разность между двумя соседними числами будет 2...Тогда P = 1 + 3 + 5 + 7 + (2n - 1) - сумма членов арифметической прогрессии... Тогда P = (первый член + последний член)/2 × колво членов....Зная,чтро первый член будет 1,а последний 2n - 1, и колво этих членов = n,то Р = (1 + 2n - 1)/2×n=2n/2×n = n^2 значит сумма первых n членов данной прогрессии будет равна n^2
программа: var n: integer; begin readln(n); writeln(n*n); end.
если уж делать эту же программу через цикл while,то: var n,P,t: integer; begin readln(n); t = 1; P = 0; while (t < 2*n - 1) do begin P = P + t; t = t + 2; end; writeln(P); end.
1 votes Thanks 1
IlyaNazarev
во 2 программе в троке while (t < 2n - 1) do знак будет не < a <=
Answers & Comments
заметим,что мы складываам подрят идущие нечетные числа,при этом разность между двумя соседними числами будет 2...Тогда
P = 1 + 3 + 5 + 7 + (2n - 1) - сумма членов арифметической прогрессии...
Тогда P = (первый член + последний член)/2 × колво членов....Зная,чтро первый член будет 1,а последний 2n - 1, и колво этих членов = n,то Р = (1 + 2n - 1)/2×n=2n/2×n = n^2
значит сумма первых n членов данной прогрессии будет равна n^2
программа:
var n: integer;
begin
readln(n);
writeln(n*n);
end.
если уж делать эту же программу через цикл while,то:
var n,P,t: integer;
begin
readln(n);
t = 1;
P = 0;
while (t < 2*n - 1) do
begin
P = P + t;
t = t + 2;
end;
writeln(P);
end.