Найти - Пользователи
Полная версия: Перевод дробей
Начало » Центр помощи » Перевод дробей
1
dobbs
Тему можно закрыть) Спасибо Никите
FishHook
dobbs
Помогите, пожалуйста, с двумя задачками.
В вашем понимании помощь подразумевает ваше посильное участие, или вы хотите чтобы за вас все сделали?
В первом случае показывайте, что уже сделали.
Во втором случае озвучте цену вопроса.
nokados
Ты случайно не из ВШЭ?
nokados
1.
nr = int(input())
dr = int(input())
integer = nr // dr
nr = nr % dr
residues = []
result = []
while(not (nr in residues)):
    residues.append(nr)
    nr *= 10
    result.append(nr//dr)
    nr %= dr
per_beg = residues.index(nr)
per_len = len(result)-per_beg
stat_len = len(result) - per_len
print(integer, '.', end='', sep='')
for i in range(stat_len):
    print(result[i], end='')
if(per_len > 0 and not(per_len == 1 and result[per_beg] == 0)):
    print('(', end='')
    for i in range(per_len):
        print(result[i+per_beg], end='')
    print(')')

2.
from fractions import Fraction
dec = input()
point = dec.find('.')
integer = int(dec[:point])
lskob = dec.find('(')
if lskob != -1:
    notper = dec[point+1:lskob]
    per = dec[lskob+1:-1]
else:
    notper = dec[point+1:]
    per = ''
lennotper = len(notper)
lenper = len(per)
if lenper == 0:
    nr = int(notper) if len(notper) > 0 else 0
    f = integer + Fraction(nr, 10**len(notper))
else:
    notint = int(notper+per)
    per = int(per) if len(per) > 0 else 0
    notper = int(notper) if len(notper) > 0 else 0
    nr = notint - notper
    dr = int('9'*lenper+'0'*lennotper)
    f = integer + Fraction(nr, dr)
print(f.numerator)
print(f.denominator)
Вторая даже с pep8
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB