Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
2 / 2 / 0
Регистрация: 02.12.2023
Сообщений: 80

Найти K-ю цифру после запятой в дроби A/B

04.12.2023, 21:15. Показов 1800. Ответов 14

Студворк — интернет-сервис помощи студентам
По заданным натуральным числам A и B найти K-ю цифру после запятой в дроби A/B в десятичной системе счисления.

Входные данные
В единственной строке входного файла INPUT.TXT записано три натуральных числа A, B и K через пробел. А и B – цифры (числа от 1 до 9), число K не превышает 106.

Выходные данные
В выходной файл OUTPUT.TXT нужно вывести ответ на задачу.

Примеры
7 4 2
5

1 6 13
6
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.12.2023, 21:15
Ответы с готовыми решениями:

Регулярные выражения - найти цифру после знака дроби
Добрый день! Составил шаблон в конструкторе https://regex101.com/: "(?i)\sд*\d+" Не получается найти в номере дома цифру после...

Найти 2011-ую цифру после запятой
Добрый день. Подскажите, пожалуйста, следующее (просьба подробно расписать как делается): Десятичное число 78965,45 перевели в систему...

Как найти и вывести последнюю цифру дробного числа (количество знаков после запятой не известно)
Добрый день, впервые решил обратится за помощью. Не подскажете ли, как найти и вывести последнюю цифру дробного числа (количество знаков...

14
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
05.12.2023, 08:50
Лучший ответ Сообщение было отмечено IlyaTop как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
a,b,k = map(int, input('a, b, k->').split())
res = []
n, rem = divmod(a,b)
while len(res) < k:
    rem *= 10
    n, rem = divmod(rem, b)
    try:
        ind = res.index(n)
        k = (k-ind)%(len(res)-ind)
        break
    except:
        res.append(n)
print(res[k-1])
5
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38180 / 21115 / 4307
Регистрация: 12.02.2012
Сообщений: 34,722
Записей в блоге: 14
05.12.2023, 09:02
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def per_fract(n,d,k):
    ent=n//d
    n=n%d
    while True:
        if n==0:
            return 0
        n=n*10
        p=n//d
        if k == 1:
            return p
        n=n%d
        k=k-1
 
n,d,k=map(int,input().split()) 
print(per_fract(n,d,k))
1
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
05.12.2023, 09:11
Catstail, нерационально! Если дробь периодическая (а при делении цифр они все такие), а k=1000000 к примеру, то ваша функция честно весь миллион раз прокрутит цикл.
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38180 / 21115 / 4307
Регистрация: 12.02.2012
Сообщений: 34,722
Записей в блоге: 14
05.12.2023, 09:13
idealist, да, согласен.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6222 / 2922 / 1046
Регистрация: 01.06.2021
Сообщений: 10,819
05.12.2023, 10:43
idealist, по условию задачи число k не превышает 106 Так что код Catstail можно применять. А если ТС опечатался и имел в виду 10^6, то это уже его проблемы: условие нужно публиковать нормально.
1
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
05.12.2023, 10:52
Цитата Сообщение от Royal_X Посмотреть сообщение
10^6
Ну, это чистое теоретизирование. Миллион-то она нормально считает, вот на десяти уже задумывается на три секунды.
А моя программа и такой результат мгновенно выдает:
Python
1
2
a, b, k->7 9 1111111111111111111111111111111111111111111111111111111111111111111111111
7
1
2 / 2 / 0
Регистрация: 02.12.2023
Сообщений: 80
06.12.2023, 14:07  [ТС]
idealist, Royal_X, Catstail, это решение тоже подходит:
Python
1
2
3
4
5
6
7
a, b, k = map(int, input().split())
from decimal import *
getcontext().prec = k + 2
w = str(Decimal(a) / Decimal(b)) + '0' * (k + 2)
if '.' not in w:
    w = w[:1], '.', w[1:]
print(str(w)[k + 1])
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38180 / 21115 / 4307
Регистрация: 12.02.2012
Сообщений: 34,722
Записей в блоге: 14
06.12.2023, 14:09
IlyaTop, да, но я бы его не зачел... Точнее - зачел бы автору пакета "decimal".
0
2 / 2 / 0
Регистрация: 02.12.2023
Сообщений: 80
06.12.2023, 14:13  [ТС]
Catstail, с решением что-то не так?
0
Любознательный
 Аватар для YuS_2
7406 / 2256 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
06.12.2023, 14:41
Цитата Сообщение от Catstail Посмотреть сообщение
Точнее - зачел бы автору пакета "decimal"
Тут, всё же, автор пакета побеспокоился о точности десятичных дробей, ибо с float не всё хорошо в точности, поэтому, возможны разночтения (в столбик на бумажке и в программе)... так что, в данном случае, лучше уж с decimal.
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38180 / 21115 / 4307
Регистрация: 12.02.2012
Сообщений: 34,722
Записей в блоге: 14
06.12.2023, 16:58
YuS_2, конечно! Decimal для того и придуман.
0
Вирусоборец
 Аватар для thyrex
14449 / 7488 / 1582
Регистрация: 06.09.2009
Сообщений: 27,132
06.12.2023, 21:31
Цитата Сообщение от idealist Посмотреть сообщение
нерационально! Если дробь периодическая (а при делении цифр они все такие), а k=1000000 к примеру, то ваша функция честно весь миллион раз прокрутит цикл.
меж тем

https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{2515}{3333} = 0,754575457545... =0,(7545)

Программа из сообщения №2 получает АС на acmp, при этом заваливает тест
Bash
1
2
2515 3333 6
7
Программа от уважаемого Catstail выдает верный ответ
Bash
1
2
2515 3333 6
5
В свое время на Паскале она была сдана с совершенно иным подходом к решению...
2
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
07.12.2023, 00:13
thyrex, спасибо, поизучаю. А там же вроде в задании только однозначные A и B?
1
Вирусоборец
 Аватар для thyrex
14449 / 7488 / 1582
Регистрация: 06.09.2009
Сообщений: 27,132
07.12.2023, 00:53
Ну да... Это я читал невнимательно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.12.2023, 00:53
Помогаю со студенческими работами здесь

Рандомные дроби с 2-3 знаками после запятой
Помогите пожалуйста сгенерировать 10 000 чисел в интервале от 2 до 8 при помощи randomize() но с условием что бы эти числа были дробные....

Игнорируются нули в дроби после запятой
Подскажите пожалуйста может я чего то не правильно делаю! ситуация такая: вывожу данные из тбл.(формат Numeric) в textbox(свойства:...

Отрезать цифру до запятой и после запятой в строке "1,44444,0".
Приветствую, имеется игровая база данных, так же имеется личный кабинет на сайте, в котором отображается статистика игрока. Статистика...

Вывод десятичной дроби, все знаки после запятой
Как сделать так, чтобы питон в консоли выводил все знаки после запятой до конца. этот код например a = 36 ** 7 print(139 / a) ...

Взять первую цифру после запятой
Всем привет! Имеется число типа Double - 1,345678. Мне нужно вернуть первую цифру после запятой типа Int. Именно цифру &quot;3&quot;...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru