Пі - ірраціональне число , що означає, що його десяткове подання ніколи не припиняється і не повторюється.
Pi усічений до 41 десяткової цифри (40 місць) є 3.1415926535897932384626433832795028841971.
Якщо ми ігноруємо десяткову точку і перераховуємо цифри як послідовність натуральних чисел, уникаючи дублікатів , отримуємо 3 1 4 15 9 2 6 5 35 8 97 93 23 84 62 64 33 83 27 950 28 841 971( OEIS A064809 ).
(Помітьте, що 15з’являється в послідовності замість того, 1 5що 1вже відбулося.
Також зверніть увагу, що 0це не відбувається, оскільки воно не є позитивним; 950містить перший нуль.)
Для побудови першого піраціонального числа ми використовуємо цю послідовність для індексації до цифр Pi (перша цифра - 3, друга 1 тощо).
Отже, перша цифра першого пірараційного числа - це 3-я цифра Пі,
друга цифра - 1-я цифра Пі,
третя цифра - 4-та цифра Пі,
четверта - 15-та цифра Пі
та інше.
Десяткова крапка додається після першої цифри для імітації Pi.
Таким чином, перше піраціональне число - 41 цифра 4.3195195867462520687356193644029372991880.
(Зауважте, що для 30-ї цифри я повинен був пройти весь шлях до 974-ї цифри Пі.)
Для побудови другого піраціонального числа процес повторюють, використовуючи перше піраціональне число замість Pi. (Саму Pi можна назвати нульовим пірраційним числом.) Отже, нова послідовність є, 4 3 1 9 5 19 58 ...а перше піраційне число індексується для отримання другого, яке починається 9.14858....
Подальші піраціональні числа створюються таким же чином, кожне з яких створюється попереднім.
Виклик
Ваше завдання полягає в тому, щоб написати найкоротшу можливу програму, яка займає два цілих числа, Nі D, і виводить число Nпірраціонального числа, усічене до Dдесяткових цифр.
Dзавжди позитивний, але Nневід'ємний, і Dцифри Pi повинні виводитися, коли Nдорівнює 0.
Коли Dце значення 1, не має значення, присутній чи ні десяткова крапка.
Вхід повинен надходити від stdin або командного рядка, а вихід повинен переходити до stdout (або найближчих альтернатив вашої мови).
Ваша програма повинна працювати для всіх вхідних значень Nта Dнижче 2 16 , але вона не повинна бути своєчасною та ефективною.
Виграє найкоротший код у байтах .
(Зверніть увагу, що пірраціональні цифри існують в інших базах, але все, що стосується цього завдання, робиться в базі 10.)
N=1, D=13393наприклад, вам потрібна 31 - мільйонної цифри PI