第三章课后习题(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; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了