Значение дроби можно вычислять так: начинаем с e = 0, затем обновляем значение e по формуле n / (n + e), уменьшая n, пока не получим 2 / (2 + ...). В конце прибавим к результату 2. Пример:
Все скучные операции с дробями оставим питону, пусть считает сам - у него для этого есть модуль fractions.
Знаменатели растут очень быстро - уже начиная с числа 13 знаменатель будет больше миллиарда.
Код (Python 3):
from fractions import Fraction
from itertools import count
n = int(input())
for k in count(3):
e = Fraction(0)
while k >= 2:
e = k / (k + e)
k -= 1
e += 2
a, b = e.numerator, e.denominator
if b > n:
print(a, b)
break
Пример ввода:
1000000000
Пример вывода:
6706022400 2467007773
ответ: в) Сообщение об ошибке.
Объяснение:
'Е' означает символ E. Так как i - счетчик, можно сказать так: программа проходит по каждому символу строки s до тех пор, пока не встретит символ 'E' (s[i] — это i-ый символ строки s). Так как исходные данные (25.34), которые командой Str(c, s) переводятся в строковой тип и записываются в переменную s, не содержат символ E, то после прохода по всем символам строки s, индекс выйдет за границу строки, и компилятор выдаст ошибку об этом.
Если же заменить в программе 'E' на, скажем, '.', то программа выведет сумму всех цифр до плавающей точки. Или же можно указать цифру — тогда программа выведет сумму всех цифр до указанной цифры.
Пример работы:
var x,y,z,n:real;
begin
write('Введите сегодняшнее число: ');
readln(x);
write('Введите номер сегодняшнего месяца: ');
readln(y);
begin
if y=1
then n:=365-x
else;
if y=2
then n:=365-31-x
else;
if y=3
then n:=365-31-28-x
else;
if y=4
then n:=365-31-28-31-x
else;
if y=5
then n:=365-31-28-31-30-x
else;
if y=6
then n:=365-31-28-31-30-31-x
else;
if y=7
then n:=365-31-28-31-30-31-30-x
else;
if y=8
then n:=365-31-28-31-30-31-30-31-x
else;
if y=9
then n:=365-31-28-31-30-31-30-31-31-x
else;
if y=10
then n:=365-31-28-31-30-31-30-31-31-30-x
else;
if y=11
then n:=365-31-28-31-30-31-30-31-31-30-31-x
else;
if y=12
then n:=365-31-28-31-30-31-30-31-31-30-31-30-x
else;
end;
writeln ('До Нового года осталось: ',n);
end.