#define _CRT_SECURE_NO_WARNINGS
#include<stdioh>
#include<stdlibh>
double legendre(int n, int x) {
if (n == 0) {
return 1;
}
if (n == 1) {
return x;
}
return ((2 n - 1)x - legendre(n - 1, x) - (n - 1)legendre(n - 2, x)) / n;
}
void main() {
int n;
int x;
printf("请输入n的值和x的值\n");
scanf("%d %d", &n, &x);
printf("P%d(%d) = %f\n", n, x, legendre(n, x));
system("pause");
}
扩展资料:
勒让德多项式
勒让德多项式是下列勒让德微分方程的多项式解:
其中n 为正整数。
生成函数
勒让德多项式的生产函数为
前几个勒让德多项式:
正交关系
勒让德多项式在(-1,1)取决满足如下的正交关系式:
递归算法(英语:recursion algorithm)在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法。递归式方法可以被用于解决很多的计算机科学问题,因此它是计算机科学中十分重要的一个概念。绝大多数编程语言支持函数的自调用,在这些语言中函数可以通过调用自身来进行递归。计算理论可以证明递归的作用可以完全取代循环,因此在很多函数编程语言(如Scheme)中习惯用递归来实现循环。
递归程序
在支持自调用的编程语言中,递归可以通过简单的函数调用来完成,如计算阶乘的程序在数学上可以定义为:
public static void main(String[] args){
Systemoutprintln("输入n,按回车:");
Scanner s = new Scanner(Systemin);
Integer n = IntegerparseInt(snext());
Integer re = factorial(1, n);
Systemoutprintln(re);
}
public static Integer factorial(Integer a, Integer b){
if(b == 1){
return a b;
}else{
return a b factorial(a, b-1);
}
}
这个最后吐槽一句,用循环一下就解决了,非要用递归,闲得蛋疼
按照你的要求编写的求最大公约数的递归C语言程序如下
#include <stdioh>int gcd(int m,int n){
int r=m%n;
if(r==0){
return n;
}
return gcd(n,r);
}
int main(){
int m,n;
scanf("%d%d",&m,&n);
printf("%d",gcd(m,n));
return 0;
}
我给你一个最简单的递归函数,求:s=1+2+3+...+n
Private Sub Command1_Click()
Dim n As Integer
Dim S As Integer
n = 100
S = MySum(n)
Print S
End Sub
'自定义递贵函数MySum
Private Function MySum(ByVal n As Integer) As Integer
If n = 1 Then
MySum = 1
Else
MySum = MySum(n - 1) + n
End If
End Function
#include <iostream>
using namespace std;
int fun(int n){
int sum;
if(n==1)
{
cout<<n<<' ';
return 1;
}
else
{
sum=fun(n-1)+1;
cout<<sum<<' ';
return sum;
}
}
int main()
{
fun(100);
return 0;
}
以上就是关于c语言:用递归方法编写程序,求n阶勒让德多项式的值全部的内容,包括:c语言:用递归方法编写程序,求n阶勒让德多项式的值、递归代码怎么写、用Java编写一个完整的递归程序,实现如下功能:从键盘输入数字n,程序自动计算n!,并输出等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)