Переделать из цикла repeat until в цикл while do var e,a,i,FACTc,x,k,s,n: real;
c:integer;
begin
write('Введите x');
readln(x);
a:=x;
c:=3;
i:=1;
FACTc:=1;
repeat
e:=power(x,c);
repeat
FACTc:=FACTc*i;
i:=i+1;
until i>c;
n:=e/FACTc ;
if (c=3) or (c=7) or (c=11) then k:=-n+s
else k:=n+s;
if c=3 then s:=k+a
else s:=k;
c:=c+2;
until c>13;
writeln ('s= ', s)
end.
126 дисков
Объяснение:
Рассмотрим 6го покупателя
х-было
0,5х+1-продал
осталось 0
х-(0,5х+1)=0
х-0,5х-1=0
0,5х=1
х=1:0,5=2
Аналогично 5й покупатель
х-(0,5х+1)=2
х-0,5х-1=2
0,5х=3
х=3:0,5=6
Аналогично 4й покупатель
х-(0,5х+1)=6
х-0,5х-1=6
0,5х=7
х=7:0,5=14
Аналогично 3й покупатель
х-(0,5х+1)=14
х-0,5х-1=14
0,5х=15
х=15:0,5=30
Аналогично 2й покупатель
х-(0,5х+1)=30
х-0,5х-1=30
0,5х=31
х=31:0,5=62
Аналогично 1й покупатель
х-(0,5х+1)=62
х-0,5х-1=62
0,5х=63
х=63:0,5=126
ответ: Попов принес на ярмарку 126 дисков
N = int(input())
if N == 1:
exit(0)
bacteria = [0] * N
for i in range(0, N):
bacteria[i] = int(input())
prefix_sum = [bacteria[0]] * N
for i in range(1, N):
prefix_sum[i] = prefix_sum[i - 1] + bacteria[i]
ans = [0] * N
if bacteria[N-1] > bacteria[0]:
ans[N - 1] = 1
for i in reversed(range(2, N)):
if ans[i] == 1:
prev = i - 1
if prefix_sum[prev] > bacteria[i] and bacteria[0] < bacteria[prev]:
ans[prev] = 1
for i in range(N):
print(ans[i])
Объяснение:
g++