随笔 - 398  文章 - 0  评论 - 6  阅读 - 3205

第三章课后习题(3)

例3-13

题目描述:用递归的方法编写函数求Fibonacci级数,公式为

F(n)=F(n-1)+F(n-2)(n>2),F1=F2=1

观察函数调用过程。

设计思路:

1.设计一个Fibonacci函数,包括两个整数为形参,重复调用该函数,在调用时对n进行减一操作,当n=2时结束循环。

2.输入n值,调用函数。

3.输出结果。

流程图:

 

 

 代码实现:

复制代码
#include<iostream>
using namespace std;
int Fibonacci(int n)
{
    if (n == 1 || n == 2)
    {
        return 1;
    }
    else
        return Fibonacci(n - 1) + Fibonacci(n - 2);
    return 0;
}
int main()
{
    int sum = 0;
    int n;
    cin >> n;
    int s = Fibonacci(n);
    cout << s;
    return 0;
}
复制代码

 

例3-14

题目描述:用递归的方法编写函数求n阶勒让德多项式的值,在主程序中实现输入输出。递归公式已给出。

设计思路:

1.设计一个函数p,包括两个形参x和n,当n=0时p(x)=1,当n=1时p(x)=x,当x>1时p(x)=;

2.输入x与n的值。

3.输出结果。

流程图:

 代码实现:

 

复制代码
#include<iostream>
using namespace std;
int p(int x, int n)
{
    if (n ==0)
    {
        return 1;
    }
    else if (n == 1)
    {
        return x;
    }
    else
    {
        return ((2 * n - 1) * x * p(x, n-1) - (n - 1) * p(x, n - 2)) / n;
    }
    return 0;
}
int main()
{
    int x, n;
    cin >> x >> n;
    cout<<p(x, n);
    return 0;
}
复制代码

 例3-15

题目描述:编写递归函数getPower计算x的y次方,在同一个程序中针对整形和实型实现两个重载的函数

设计思路:

1.编写两个形参类型不同的函数,分别计算整形和实型是的结果。

2.输入x与y的值。

3.输出结果

流程图:

 代码实现:

复制代码
#include<iostream>
using namespace std;
int getPower(int x, int y)
{
    if (y < 0)
        return 0;
    else
        return getPower(x, y - 1);
}
double getPower(double x, double y)
{
    if (y < 0)
        return 0;
    else
        return getPower(x, y - 1);
}
int main()
{
    int x, y;
    cin >> x >> y;
    int a, b;
    cin >> a >> b;
    cout<<getPower(x, y);
    cout<<getPower(a, b);
    return 0;
}
复制代码

 

posted on   石铁生  阅读(33)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示