1 / 1 / 0
Регистрация: 03.11.2019
Сообщений: 36
1

Период у дроби

14.11.2019, 18:02. Показов 16661. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Найти период бесконечной периодической дроби. Если десятичная дробь конечна, её период — цифра 0.
Период должен начинаться с той цифры, которая является первой повторяющейся при выписывании бесконечной десятичной дроби.

Пример 1
Ввод
11
Вывод
09
Пример 2
Ввод
15
Вывод
6
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.11.2019, 18:02
Ответы с готовыми решениями:

Найти период рациональной дроби при записи ее в виде десятичной дроби
Числитель и знаменатель обыкновенной дроби вводятся как первое и второе число с клавиатуры. Найти...

Определить длину периода десятичной дроби M/N и период данной десятичной дроби M/N
Даны два натуральных числа M и N, M < N. Определить длину периода десятичной дроби M/N и период...

Период дроби
Добрый день! Недавно начал изучать язык с++ и наткнулся на такую задачку: вывести период дроби. С...

Период дроби
Недавно обратил внимание на десятичные дроби, точнее на их периоды, по типу 0,(3) ; 1,(9) и т.д. И...

Период дроби
Хотелось бы узнать как сделать код, ищущий период дроби. Я понимаю, что скорее меня пошлют на...

7
Эксперт С++
 Аватар для grizlik78
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
14.11.2019, 18:54 2
Возможно есть хитрые, красивые и эффективные алгоритмы, я же просто реализовал деление «уголком».
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
n = int(input())
 
first_pos = {}
position = 0
period = ""
remainder = 1
 
while not (remainder in first_pos):
    first_pos[remainder] = position
    period += str(remainder // n)
    remainder = (remainder % n) * 10
    position += 1
    
period = period[first_pos[remainder]:]
 
print(period)
0
1 / 1 / 0
Регистрация: 03.11.2019
Сообщений: 36
14.11.2019, 20:31  [ТС] 3
grizlik78, тут нужно списки использовать, можете сказать что означает first_pos = {}?
0
Эксперт С++
 Аватар для grizlik78
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
14.11.2019, 20:38 4
Это словарь. dict. В принципе, заменить списком не сложно, хотя эффективность ещё снизится.

Добавлено через 3 минуты
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
n = int(input())
 
remainders = []
period = ""
remainder = 1
 
while not (remainder in remainders):
    remainders.append(remainder)
    period += str(remainder // n)
    remainder = (remainder % n) * 10
    
period = period[remainders.index(remainder):]
 
print(period)
0
1 / 1 / 0
Регистрация: 03.11.2019
Сообщений: 36
14.11.2019, 21:02  [ТС] 5
grizlik78, period = period[remainders.index(remainder):] как эту строчку без индекса переписать?
0
Эксперт С++
 Аватар для grizlik78
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
14.11.2019, 21:05 6
Реализовать циклом. index() возвращает индекс первого вхождения заданного элемента в список. То есть в цикле надо перебирать элементы списка, пока не встретится заданный. Его номер в списке и есть искомый индекс.
0
1 / 1 / 0
Регистрация: 03.11.2019
Сообщений: 36
14.11.2019, 21:14  [ТС] 7
grizlik78,
переписал вот так вроде: Но выводит 006 вместо 6 и 009 вместо 09. Как исправить?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
n = int(input())
 
remainders = []
period = ""
remainder = 1
 
while not (remainder in remainders):
    remainders.append(remainder)
    period += str(remainder // n)
    remainder = (remainder % n) * 10
 
for i in remainders:
    if i == remainder:
        break
 
print(period)
0
Эксперт С++
 Аватар для grizlik78
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
14.11.2019, 21:29 8
Это потому, что надо найти номер элемента, а не там элемент. А потом ещё и использовать его.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
n = int(input())
 
remainders = []
period = ""
remainder = 1
 
while not (remainder in remainders):
    remainders.append(remainder)
    period += str(remainder // n)
    remainder = (remainder % n) * 10
 
start_pos = 0
for i in remainders:
    if i == remainder:
        break
    start_pos += 1
 
print(period[start_pos:])
1
14.11.2019, 21:29
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.11.2019, 21:29
Помогаю со студенческими работами здесь

Определить период дроби n/m
Здравствуйте помогоите пожалуйста написать программу, определяющую период дроби n/m, где n и m –...

Определить период дроби
Ув. форумчане, помогите определить период дробей 1/7 и 1/17. Подскажите какая используется для...

Найти период дроби
Есть задача: дано число k не делящееся на 2 и 5. Вывести (в виде списка) период дроби 1/k. В...

Определить период дроби
Помогите пожалуйста составить программу. Нужно определить период дроби.

Напечатать период десятичной дроби
Напечатать период десятичной дроби m / n для заданных натуральных m и n. Например, дробь 1/7 дает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

Новые блоги и статьи
Чем отличаются HashMap и Hashtable в Java
hw_wired 24.01.2025
В мире разработки на Java существует множество инструментов для работы с коллекциями данных, и среди них особое место занимают структуры данных для хранения пар ключ-значение. HashMap и Hashtable. . .
Как конвертировать видео в GIF
hw_wired 24.01.2025
В современном мире анимированные изображения стали неотъемлемой частью цифровой коммуникации. Формат GIF (Graphics Interchange Format) представляет собой особый тип файлов, который позволяет. . .
Как скопировать текст в буфер обмена на JavaScript во всех браузерах
hw_wired 24.01.2025
Копирование текста в буфер обмена стало неотъемлемой частью современных веб-приложений, значительно улучшающей пользовательский опыт и упрощающей работу с контентом. В эпоху активного обмена. . .
Как скрыть клавиатуру на Android
hw_wired 24.01.2025
При разработке Android-приложений часто возникает необходимость управлять видимостью экранной клавиатуры для улучшения пользовательского опыта. Одним из наиболее эффективных способов контроля. . .
Как обучить нейросеть создания картинок на Python
bytestream 24.01.2025
В эпоху цифровых технологий искусственный интеллект становится неотъемлемой частью творческого процесса. Особое место в этой области занимает разработка и обучение нейронных сетей для создания. . .
Как обучить нейросеть генерации текста на Python
bytestream 24.01.2025
В современном мире искусственный интеллект и машинное обучение становятся неотъемлемой частью многих технологических решений. Одной из наиболее интересных и востребованных задач в этой области. . .
Машинное обучение на Python
bytestream 24.01.2025
Введение в машинное обучение на Python Машинное обучение представляет собой одну из наиболее динамично развивающихся областей информационных технологий, которая позволяет компьютерным системам. . .
Как удалить вирус-майнер с компьютера
hw_wired 24.01.2025
Вирусы-майнеры стали одной из наиболее серьезных угроз для пользователей компьютеров. Эти вредоносные программы тайно используют вычислительные ресурсы зараженного устройства для добычи криптовалюты. . .
Что такое веб-сервер, для чего он нужен и как работает
bytestream 24.01.2025
В современную эпоху цифровых технологий веб-сервер является фундаментальным компонентом интернет-инфраструктуры, обеспечивающим функционирование множества онлайн-сервисов и веб-сайтов. Этот. . .
Как в цикле for перебрать все элементы в словаре в Python
bytestream 24.01.2025
Словари в Python представляют собой мощные структуры данных, которые позволяют хранить информацию в формате ключ-значение. Эта особенность делает их незаменимыми при работе с данными, где требуется. . .
Как отменить rebase в Git
hw_wired 24.01.2025
Git rebase представляет собой мощный инструмент для управления историей коммитов в системе контроля версий Git. Этот механизм позволяет разработчикам изменять последовательность, комбинировать или. . .
Как поменять цвет input placeholder с помощью CSS
bytestream 24.01.2025
В веб-разработке оформление элементов пользовательского интерфейса играет ключевую роль в создании привлекательного и интуитивно понятного дизайна. Особое внимание уделяется формам ввода данных, где. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru