第四章 过程抽象——函数(三)

第十题:
迭代:
double H(int n,double x)
{
    if(n==1)    return 1;
    double h1=1, h2=2*x;
    for(int i=3;i<=n;i++){
        double temp=2*x*h2-2*(i-1)*h1;
        h1=h2;
        h2=temp;
    }
    return h2;
}

递归
double Hermit(int n,double x)
{
    switch(n)
    {
    case 1:
        return 1;
    case 2:
        return 2*x;
    default:
        return 2*x*Hermit(n-1,x)-2*(n-1)*Hermit(n-2,x);
    }
}

说明:以上两个版本都不检查n<=0的情况。

第十一题:
int Ack(int m,int n){
    if(m==0)
        return n+1;
    else if (n==0)
        return Ack(m-1,1);
    else
        return Ack(m-1,Ack(m,n-1));
}
说明:本函数没有检查m和n小于零的情况,因为根据题意所给的条件,m,n均大于零。也就是说,调用本函数的程序应该负责该部分的检查。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值