【C++编程基础】递归函数初步题解
T89304 递归求和
题目描述
用递归的方法求1+2+3+4+…+(n-1)+n的值。
输入格式
一个整数n。(1<=n<=10000).
输出格式
一个整数,数列的和。
输入输出样例
输入
10
输出
55
分析
大于等于1,返回n+f(n-1);
否则返回0.
代码:
#include<bits/stdc++.h>
using namespace std;
int n;
int f(int n){
if(n>=1)
return n+f(n-1);
else
return 0;
}
int main(){
cin>>n;
cout<<f(n)<<endl;
return 0;
}
T89307 Hermite多项式
题目描述
用递归的方法求Hermite多项式的值
函数表达式
对给定的实数x和正整数n,求多项式值。
输入格式
两个数x,n。用空格隔开。(-1<x<1,1<=n<=20)
输出格式
一个数,函数值。(保留两位小数)
输入输出样例
输入
-0.10 1
输出
-0.20
分析
题目已经列出递归关系式,按照题目打程序
注意:题目要求保留两位小数且x用double输入
代码
#include<bits/stdc++.h>
using namespace std;
int n;
double x;
double f(int n,double x){
if(n==0)
return 1;
if(n==1)
return 2*x;
else
return 2*x*f(n-1,x)-2*(n-1)*f(n-2,x);
}
int main(){
cin>>x>>n;
cout<<fixed<<setprecision(2)<<f(n,x)<<endl;
return 0;
}
T3T89310 递归函数求值1
题目描述
已知
函数表达式
用递归方法求解。
输入格式
一行有两个整数x和n,用空格隔开。(1<x<30000,1<=n<=10000)
输出格式
一个实数,即函数值。(保留两位小数)
输入输出样例
输入
24499 8564
输出
2.86
分析
if(n