软工第2天
编写程序求两个整数的最大公约数和最小公倍数
#include <iostream> using namespace std; int main() { int a, b,c, _a,_b,k; cin >> a >> b; if (a < b) { int t; t = a; a = b; b = t; } _a = a; _b = b; while (_b)//碾转相除法(欧几里得算法)求最大公约数 { c =_a %_b; _a = _b; _b = c; } //两个数的最大公约数等于其中较小的数字和二者之间余数的最大公约数 cout << "最大公约数为" << _a<<endl; k = a * b / _a;//最小公倍数为两个数的乘积除以最大公约数 cout << "最小公倍数为" << k<<endl; return 0; }
在主程序中提示输入整数n,编写函数用递归的方法求1+2+3+……+n的值
#include <iostream> using namespace std; int Fun(int _n); int main() { int n,ret; cin >> n; ret=Fun(n); cout << ret << endl; return 0; } int Fun(int _n) { if (_n == 1) { return _n; } else { return _n + Fun(_n - 1); }
用递归的方法编写函数求Fibonacci级数,公式为
F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*),F(1)=F(2)=1
观察递归调用的过程。
#include <iostream> using namespace std; int Fibonacci(int _n); int main() { int n,ret; cin >> n; ret = Fibonacci(n); cout << ret << endl; return 0; } int Fibonacci(int _n) { if ((_n == 1) || (_n == 2)) { return 1; } else { return Fibonacci(_n - 1) + Fibonacci(_n - 2); } }
其他方式实现
(14条消息) 斐波那契数列的四种实现方式(C语言)_斐波那契数列c语言_cherrydreamsover的博客-CSDN博客
用递归的方法编写函数求n阶勒让德多项式的值,在主程序中实现输入输出
n = 0 pn(x) = 1
n = 1 pn(x) = x
n > 1 pn(x) = ((2n - 1)x pn - 1(x)-(n - 1)* pn - 2(x)) / n
#include <iostream> using namespace std; float Fun(int _n,int _x); int main() { int n,x; float ret; cout << "请输入x:"; cin >> x; cout << "请输入n的阶数:"; cin >> n; ret = Fun(n,x); cout << ret << endl; return 0; } float Fun(int _n,int _x) { if (_n == 0) { return 1; } else if (_n == 1) { return _x; } else { float i; i= ((2 * _n - 1) *_x * Fun(_n - 1,_x) - (_n - 1) * Fun(_n - 2, _x)) / _n; return i; } }
浙公网安备 33010602011771号