C语言之函数调用11—递归法求Hermite函数
时间:2015-07-27 16:26:07
收藏:0
阅读:137
/*递归法!
==========================================
题目:
Hermite 函数:输入n、x,求Hn(x)?
H0(x)=1;
H1(x)=2*x;
Hn(x)=2*x*Hn-1(x)-2*(n-1)Hn-2(x);
==========================================
*/
#include<stdio.h>
float H(int n,int x)
{
if(n==0) return 1;
if(n==1) return 2*x;
else
return 2*x*H(n-1,x)-2*(n-1)*H(n-2,x);
}
void main()
{
int n,x,flag=1;
float Hn;
while(flag)
{
printf("n=");
scanf("%d",&n);
if(n>0)
flag=0;
else printf("请确认n>0!!!\n\n重新输入:\n");
}
printf("x=");
scanf("%d",&x);
Hn=H(n,x);
printf("H(%d)=%.2f\n",n,Hn);
}
/*
====================================================
评:
重在写出Hermite函数的递归表达!第一,有参数n,x;第二,
有三个表达式分别表示n=0,n=1,n=其他,最后递归到n=1或
n=0;第三,注意n是正整数!然后输入参数调用即可!
====================================================
*/
==========================================
题目:
Hermite 函数:输入n、x,求Hn(x)?
H0(x)=1;
H1(x)=2*x;
Hn(x)=2*x*Hn-1(x)-2*(n-1)Hn-2(x);
==========================================
*/
#include<stdio.h>
float H(int n,int x)
{
if(n==0) return 1;
if(n==1) return 2*x;
else
return 2*x*H(n-1,x)-2*(n-1)*H(n-2,x);
}
void main()
{
int n,x,flag=1;
float Hn;
while(flag)
{
printf("n=");
scanf("%d",&n);
if(n>0)
flag=0;
else printf("请确认n>0!!!\n\n重新输入:\n");
}
printf("x=");
scanf("%d",&x);
Hn=H(n,x);
printf("H(%d)=%.2f\n",n,Hn);
}
/*
====================================================
评:
重在写出Hermite函数的递归表达!第一,有参数n,x;第二,
有三个表达式分别表示n=0,n=1,n=其他,最后递归到n=1或
n=0;第三,注意n是正整数!然后输入参数调用即可!
====================================================
*/
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/lzx19901012/article/details/47085113
评论(0)