目录
1. 最大公因数
题目编号 :Exp06-Basic04
题目名称:最大公因数
题目描述:编写程序,用递归方法求解m、n最大公约数。对正整数u和v 可以采用欧几里德辗转相除算法求它们的最大公因数,具体过程如下:
u% v → r~1~
v % r~1~ → r~2~
r~1~% r~2~ → r~3~
r~2~ % r~3~ → r~4~
… …
r~n-1~% r~n~ → r~n+1~=0
当余数r~n+1~=0时,计算过程结束,r~n~ 为正整数u 、v的最大公因数。
输入:从键盘随机输入两个正整数m和n。输出:最大公因数。
样例1:
输入: 12 15输出: 3样例2:
输入: 28 49输出: 7
#include <iostream>
using namespace std;
int gcd(int x, int y)
{
if (y == 0)return x;
else
return gcd(y, x % y);
}
int main()
{
int x, y;
cin >> x >> y;
cout << gcd(x, y);
return 0;
}
比较基础的一道题,利用辗转相除法求最大公约数
2.Hermite多项式
题目编号:Exp06-Basic02,GJBook3-10-03
题目名称:Hermite多项式
题目描述:编写程序,用递归方法求解Hermite 多项式值。Hermite 多项式定义如下。
输入:从键盘随机输入一个非负整数和一个实数,作为n和x的值。
输出:H~n~(x)的值,精确到小数点后2位。
样例1:输入: 0 1.5输出: 1.00样例2:
输入: 2 2.4输出: 21.04
#include <iostream>
#include <iomanip>
using namespace std;
double Hermite(int n,double x)
{
if (n == 0)return 1;
if (n == 1)return 2 * x;
return 2 * x * Hermite(n - 1, x) - 2 * (n - 1) * Hermite(n - 2, x);
}
int main()
{
int n;
double x;
cin >> n >> x;
cout << fixed << setprecision(2) << Hermite(n, x);
re