Я пытаюсь (без особого успеха) написать короткую функцию на C ++:
двойная цифра (double x, int b, int d)
который возвращает d-ю цифру в разложении по основанию b числа x, которое может быть положительным или отрицательным, а также дробью. когда d отрицательно, он должен возвращать цифры после десятичной точки (он не определен для d = 0, так что в этом случае он возвращает 0). Например:
const double x = 25.73;
for (int n = -5; n <= 5; n++)
cout<<digit(x,10,n)<<' ';
должен напечатать: 0 0 0 3 7 0 5 2 0 0 0
Функция должна использовать только циклы, if, exp, pow, log, floor и ceil. то есть без трюков sprintf и т. д.
Спасибо!!!
РЕДАКТИРОВАТЬ: для простоты предположим, что 2 ‹= b‹ = 10
РЕДАКТИРОВАТЬ: также избегайте использования мода, только решения на основе pow-exp-log-floor-ceil
double
результат функции для печати как.? мне кажется, эти требования не могли быть частью исходного текста задания. почему бы не воспроизвести этот текст здесь буквально (или со ссылкой, если он общедоступен). - person Cheers and hth. - Alf   schedule 02.01.2013