Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 21, 2014 17:29:32

dobbs
От: Санкт-Петербург
Зарегистрирован: 2014-09-21
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Перевод дробей

Тему можно закрыть) Спасибо Никите

Отредактировано dobbs (Сен. 21, 2014 22:52:41)

Офлайн

#2 Сен. 21, 2014 17:39:35

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Перевод дробей

dobbs
Помогите, пожалуйста, с двумя задачками.
В вашем понимании помощь подразумевает ваше посильное участие, или вы хотите чтобы за вас все сделали?
В первом случае показывайте, что уже сделали.
Во втором случае озвучте цену вопроса.



Офлайн

#3 Сен. 21, 2014 19:20:45

nokados
От: Ростов
Зарегистрирован: 2013-10-15
Сообщения: 52
Репутация: +  0  -
Профиль   Отправить e-mail  

Перевод дробей

Ты случайно не из ВШЭ?



моя подпись

Офлайн

#4 Сен. 21, 2014 19:23:34

nokados
От: Ростов
Зарегистрирован: 2013-10-15
Сообщения: 52
Репутация: +  0  -
Профиль   Отправить e-mail  

Перевод дробей

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



моя подпись

Отредактировано nokados (Сен. 21, 2014 19:23:54)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version