Значение дроби можно вычислять так: начинаем с e = 0, затем обновляем значение e по формуле n / (n + e), уменьшая n, пока не получим 2 / (2 + ...). В конце прибавим к результату 2. Пример:
Все скучные операции с дробями оставим питону, пусть считает сам - у него для этого есть модуль fractions.
Знаменатели растут очень быстро - уже начиная с числа 13 знаменатель будет больше миллиарда.
ответ:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var
Chislo, Count, Summa, n: integer;
begin
Summa := 0;
Count := 0;
readln(Chislo);
while Chislo > 0 do
begin
n := Chislo mod 10;
if odd(n) then
begin
Summa := Summa + n;
inc(Count);
end;
Chislo := Chislo div 10;
end;
writeln('Сумма нечетных цифр числа: ', Summa);
writeln('Кол-во нечетных цифр числа: ', Count);
writeln('Среднее арифметическое нечетных цифр: ', Summa / Count);
end.
Объяснение:
Значение дроби можно вычислять так: начинаем с 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