Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Переписать программу с паскаля на питон

Асет Нукубаев Ученик (72), закрыт 5 лет назад
var i,n,c:longint;
b:real;
begin
read(n);
while n>30 do
n:=n-1;
b:=1;
c:=1;
for i:=1 to n do begin
c:=c*i;
b:=b+1/c;
end;
writeln(b);
end.
Дополнен 5 лет назад
n=int(input())
sum=1
f=1
if n>30:
print (n)
for i in range (n,1):
f=f*i
sum+= sum+1/f
print(sum)
Дополнен 5 лет назад
Что не так?
Лучший ответ
Андрей Высший разум (425914) 5 лет назад
У тебя же n в исходном коде автоматически уменьшается до 30 - если больше. И зачем умножать, а потом делить, когда достаточно только делить?

n = min(30, int(input()))
sum = 1.0
f = 1.0
for i in range(1, n + 1):
f /= i
sum += f
print(sum)
Остальные ответы
Аглая Шниц Искусственный Интеллект (138259) 5 лет назад
n = int(input())
sum = 0.
while (n):
sum += 1.
sum /= n
n -=1
print(sum+1)
Асет НукубаевУченик (72) 5 лет назад
не правильно, при вводе единицы должна выводиться двойка
Аглая Шниц Искусственный Интеллект (138259) там формула должна быть 1 + 1/2! + 1/3! + /// + 1/n! или я что-то путаю?
Похожие вопросы