~cpp /** Chapter 1.2 (2)Problem Solving programmed by eternalbleu (youngchang park, 2001 1612) Date: 2005 09 10 **/ #include <iostream> // 에러처리를 위한 매크로 #define EXIT_SUCCESS 0 #define EXIT_FAILURE 1 #define PARAM_X 2.0 #define COEFFICIENTS {1, 2, 3, 4, 5, 6, 7} double horner_func(double, double*, int); int max_exponentials = 0; int main () { double x_param = PARAM_X; // index 차수의 계수를 배열로 지정한다. double coefficient [] = COEFFICIENTS; max_exponentials = sizeof(coefficient) / sizeof(double); std::cout<<horner_func(x_param, coefficient, 0)<<std::endl; return EXIT_SUCCESS; } /** horner_func 호너의 법칙을 재귀함수로 구현한다. @param x_param 인자로 전달될 미지수의 값. @param coefficient 인자로 전달될 계수의 배열. @param exponential 미지수 차수. @return 호너함수의 재귀호출 값 + 호출 차수의 계수값 **/ double horner_func(double x_param, double* coefficient, int exponential) { // Recursion Termination Condition if (exponential == max_exponentials-1) return coefficient[exponential]; // General Recursion Call return horner_func(x_param, coefficient, exponential+1)*x_param + coefficient[exponential]; }