Треугольник Фаульхабера
Сумма 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).
Выходные данные
Для каждого набора данных выводится одна строка. Она содержит номер набора данных, за которым следует один пробел, а затем либо значение, если оно является целым числом, ИЛИ числитель элемента, косая черта и знаменатель элемента.