Татьяна Ларина,читала очередной французский роман, подсчитала сумму номеров прочитанных...

0 голосов
178 просмотров

Татьяна Ларина,читала очередной французский роман, подсчитала сумму номеров прочитанных страниц. Обозначим эту сумму Q. Написать программу, определяющую номер страницы. (PascalABCNET)


Информатика (15 баллов) | 178 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

Сумма страниц q = 1+2+3+4+...+n.
Это арифметическая прогрессия, формула суммы которой известна из математики.
\displaystyle S= \frac{2a_1+d(n-1)}{2}\cdot n; \quad a_1=d=1\to S= \frac{n(n+1)}{2} ; \\ \\
n^2+n-2S=0; \quad D=1+8S; \quad \sqrt D=\sqrt{1+8S} \\ \\
n= \frac{-1\pm \sqrt{1+8S}}{2}= \frac{\sqrt{1+8S}-1}{2}

// PascalABC.NET 3.3, сборка 1627 от 27.01.2018
// Внимание! Если программа не работает, обновите версию!

begin
  var q:=ReadInteger('q=');
  Writeln('n = ',(Sqrt(1+8*q)-1)/2:0)
end.

Пример
q= 55
n = 10

(150k баллов)
0 голосов

Var q,i,s:integer;
begin
readln(q);
s:=0;
i:=0;
while s begin
 i:=i+1;
 s:=s+i;
 end;
if s=q then writeln('Страница = ',i+1)
else writeln('Ошибка ввода');
end.

Пример:
5
Страница = 6

(194k баллов)
0

В примере опечатка: вместо 5 должно быть 15

0

Именно так. Если Татьяна читает страницу 6, то сумма прочитанных страниц = 1+2+3+4+5 = 15.

0

Интерпретировать, действительно, можно по-разному. Мне захотелось именно так сделать. А что именно требуется в задаче - пусть автор вопроса решает.