正在加载图片...
函数的递归调用 直接或间接调用自身的函数为递归函数。 一个问题采用递归方法来解决时必须符合以下条件: (1)可将一个问题转化为具有同样解法的规模较小的问题 (2)必须有明确的结束条件。 例: Fibonacci数列已在前面定义过,用递归函数求此数列的第n项 if(n==0|1n==1)f=1 else f=fib(n-1)+fib(n-2) return(f) 用递归方法求n阶勒让德多项式的值,递归公式为 Pn (x) ((2n-1)xPn-1(x)-(n-1)Pn-2(x)/n (n>1) nd I nt x, n; float p(int, int): printf(“\ n Input n&x:”) scanf(“%d,%d”,&n,&x); printf(“n=%d,x=%dn”,n,x); printf(“P%d(%d)=%6.2f”,n,x,p(n,x)); float p(int n, int x) if (n==0) return(1) else if (n==1) return(x)函数的递归调用 直接或间接调用自身的函数为递归函数。 一个问题采用递归方法来解决时必须符合以下条件: (1)可将一个问题转化为具有同样解法的规模较小的问题; (2)必须有明确的结束条件。 例:Fibonacci 数列已在前面定义过,用递归函数求此数列的第 n 项。 fib(int n) { int f; if(n= =0 || n= =1) f=1; else f=fib(n-1)+fib(n-2); return(f); } 例:用递归方法求 n 阶勒让德多项式的值,递归公式为: 1 (n=0) Pn(x)= x (n=1) ((2n-1)xPn-1(x)-(n-1)Pn-2(x))/n (n>1) main() { int x, n; float p(int ,int); printf(“\n Input n & x:”); scanf(“%d,%d”,&n,&x); printf(“n=%d,x=%d\n”,n,x); printf(“P%d(%d)=%6.2f”,n,x,p(n,x)); } float p(int n, int x) { if(n= =0) return(1); else if (n= = 1) return(x);
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有