C语言题目五

题目1

题目:Hermite Polynomials(厄米多项式)是这样定义的:

Hn(x)=n<=0:1n=1:2xn>=2:2xHn1(x)2(n1)Hn2(x)

例如:当n=3,x=2时,值为40。请编写一个递归函数,计算该函数的值。你的函数应该与下面的原型匹配:
int hermite(int n, int x)
代码如下:

#include<stdio.h>

int hermite(int n, int x)
{
    if (n <= 0)    //特殊条件的处理
    {
        return 1;
    }
    else if (n == 1)  //特殊条件的处理
    {
        return 2 * x;
    }
    else if (n >= 2)  //公式
    {
        return 2 * x* hermite(n - 1, x) - 2 * (n - 1) * hermite(n - 2, x);   //使用递归
    }
}
int main()
{
    printf("%d\n", hermite(3, 2));
    return 0;
}
题目2

题目
两个整数值M和N(M、N均大于0)的最大公约数可以按照下面的方法计算:

gcd(M,N)={M(modN)=0:NM(modN)=R,R>0:gcd(N,R)

请编写一个名叫gcd的函数,它接受两个整形参数,并返回这两个数的最大公约数。如果这两个参数中的任何一个不大于零,函数应该返回零。
代码如下:

#include<stdio.h>
int gcd(int m, int n)
{
    if (m%n == 0)
    {
        return n;
    }
    else if (m % n>0)
    {       
        return gcd(n, m % n);   //函数递归
    }
}
int main()
{
    int value = 0;
    printf("两个数的最大公约数为%d\n", gcd(100,80));
    return 0;
}

以上就是简单的递归实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值