В этом вызове 2 года назад мы нашли период доли единицы ( 1/n where n is a natural number
).
Теперь ваша задача - написать программу / функцию, чтобы найти повторяемую дробь единицы.
Рефрен является частью расширения десятичного повторяющим бесконечно, как:
- Десятичное представление
1/6
IS0.16666...
, то рефрен есть6
. - Десятичное представление
1/11
есть0.090909...
, тогда репетент09
. - Десятичное представление
1/28
есть0.0357142857142857142857...
, тогда репетент571428
.
Спекуляции
- Ввод в любом разумном формате.
- Выведите репетент в десятичном виде, строке или списке .
- Для
1/7
(0.142857142857...
) вы должны вывести142857
вместо428571
. - Для
1/13
(0.076923076923076923...
) вы должны вывести076923
вместо76923
. - Нет грубой силы, пожалуйста.
Testcases
Input Output
1 0
2 0
3 3
7 142857
13 076923
17 0588235294117647
28 571428
70 142857
98 102040816326530612244897959183673469387755
9899 000101020305081321345590463683200323264976260228305889483786241034447924032730578846348115971310233356904737852308313971108192746742095161127386604707546216789574704515607637135064147893726639054449944438832205273259925244974239822204263056874431760783917567431053641781998181634508536215779371653702394181230427315890493989291847661379937367410849580765733912516415799575714718658450348520052530558642287099707041115264168097787655318719062531568845337912920497019901
счет
Это код-гольф . Самое короткое решение в байтах побеждает.
Ответ не будет принят, потому что цель состоит не в том, чтобы найти язык, способный дать самое короткое решение, а самое короткое решение для каждого языка.
Leaderboard
code-golf
math
arithmetic
number-theory
Дрянная Монахиня
источник
источник
1/13
что0.076923076923...
нет0.769230769230...
Ответы:
Java, 150 байт:
Добавлены пробелы:
Ungolfed, полная программа:
источник
for(;;)
будет меньше байтов, чем вwhile(2<3)
то же время, будучи бесконечным циклом! (и меньше байт , чемwhile(1)
также @Maltysen)a
иr
for. Сохраняет байты!CJam, 26
Попробуйте онлайн
Объяснение:
Программа строит серию дивидендов, участвующих в вычислении десятичного расширения, пока не найдет дивиденд, который она видела ранее. Затем он берет все дивиденды, начиная с этого, и делит их на n, чтобы получить цифры репетида.
источник
Python 3.5,
79747370 байтСохраняя 3 байта, отслеживая дивиденды, идея, которую я взял из ответа CJam @ aditsu .
Проверьте это на repl.it .
источник
Желе ,
1210 байтСохраняя 2 байта, отслеживая дивиденды, идея, которую я взял из ответа CJam @ aditsu .
Попробуйте онлайн!
Как это устроено
источник
Язык GameMaker, 152 байта
На основании ответа Кенни
источник
Ява, 122
Подобно моему решению CJam.
источник
Perl 6 , 37 байт
Если вам все равно, что он будет работать только со знаменателями, которые вписываются в 64-битное целое число, вы можете удалить вызов метода
.FatRat
.Объяснение:
Тестовое задание:
источник
Pyth, 63 байта
Попробуйте онлайн!
Прямой перевод ответа на Java .
источник
PHP, 169 байт
источник