Трикутник Фаульхабера
Сума m-тих степенів перших n цілих чисел
може бути виражена як поліном ступеня m+1 від n:
Наприклад:
S(n, 1) = (1 + ... + n) = (1/2) * n^2 + (1/2) * n
S(n, 2) = (1 + ... + n^2) = (1/3) * n^3 + (1/2) * n^2 + (1/6) * n
S(n, 3) = (1 + ... + n^3) = (1/4) * n^4 + (1/2) * n^3 + (1/4) * n^2
S(n, 4) = (1 + ... + n^4) = (1/5) * n^5 + (1/2) * n^4 + (1/3) * n^3 - (1/30) * n
Коефіцієнти F(m, k) цих формул утворюють Трикутник Фаульхабера:
де рядки m починаються з 0 (зверху), а стовпці k йдуть від 1 до m+1.
Кожен рядок Трикутника Фаульхабера може бути обчислений з попереднього рядка за допомогою:
a) Елемент у рядку i та стовпці j (j > 1) дорівнює (i/j) * (елемент зверху зліва); тобто: F(i, j) = (i/j) * F(i-1, j-1)
b) Перший елемент у кожному рядку F(i, 1) обирається так, щоб сума елементів у рядку дорівнювала 1.
Напишіть програму для знаходження елементів у Трикутнику Фаульхабера у вигляді десяткових дробів у найменших термінах.
Вхідні дані
Перша строка вхідних даних містить одне ціле число P, (1 ≤ P ≤ 1000), яке є кількістю наборів даних, що слідують. Кожен набір даних повинен бути оброблений однаково та незалежно.
Кожен набір даних складається з одного рядка вхідних даних, що складається з трьох розділених пробілами десяткових цілих чисел. Перше число - це номер набору даних. Друге число - номер рядка m, а третє число - індекс k у рядку, для якого ви повинні знайти F(m, k), елемент Трикутника Фаульхабера (0 ≤ m ≤ 400, 1 ≤ k ≤ m+1).
Вихідні дані
Для кожного набору даних є один рядок вихідних даних. Він містить номер набору даних, за яким слідує один пробіл, а потім або значення, якщо воно є цілим числом АБО чисельник елемента, коса риска та знаменник елемента.