问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言:用递归方法编写程序,求n阶勒让德多项式的值

发布网友 发布时间:2022-05-13 09:48

我来回答

4个回答

热心网友 时间:2023-10-05 09:15

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

#include<stdlib.h>

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)取决满足如下的正交关系式:

热心网友 时间:2023-10-05 09:16

代码:

#include&lt;stdio.h&gt;

#include&lt;stdlib.h&gt;

double polya(n,x);

int main()

{

int x,n;

scanf("%d%d",&n,&x);

printf("%.2f\n",polya(n,x));

return 0;

}

double polya(int n,int x)

{

double y;

if(n==0)

y=1;

if(n==1)

y=x;

if(n&gt;1)

y=((2*n-1)*x*polya(n-1,x)-(n-1)*polya(n-2,x))/n;

return y;

}

运行结果:

扩展资料:

return

C++的关键字,它提供了终止函数执行的一种方式。当return语句提供了一个值时,这个值就成为函数的返回值.

说到return,有必要提及主函数的定义,下面是从网络上找到的资料,好好消化吧,对了解主函数中返回值的理解有很大的帮助.

很多人甚至市面上的一些书籍,都使用了void main(),其实这是错误的。C/C++中从来没有定义过void main()。

C++之父Bjarne Stroustrup在他的主页上的FAQ中明确地写着The definition void main(){/*...*/}is not and never has been C++,

nor has it even been C.(void main()从来就不存在于C++或者C)。下面我分别说一下C和C++标准中对main函数的定义。

1.C

在C89中,main()是可以接受的。Brian W.Kernighan和Dennis M.Ritchie的经典巨著The C programming Language 2e(《C程序设计语言第二版》)用的就是main()。不过在最新的C99标准中,只有以下两种定义方式是正确的:

int main(void)

int main(int argc,char*argv[])

(参考资料:ISO/IEC 9899:1999(E)Programming languages—C 5.1.2.2.1 Program startup)

当然,我们也可以做一点小小的改动。例如:char*argv[]可以写成char**argv;argv和argc可以改成别的变量名(如intval和charval),不过一定要符合变量的命名规则。

如果不需要从命令行中获取参数,请用int main(void);否则请用int main(int argc,char*argv[])。

main函数的返回值类型必须是int,这样返回值才能传递给程序的激活者(如操作系统)。

如果main函数的最后没有写return语句的话,C99规定编译器要自动在生成的目标文件中(如exe文件)加入return 0;,表示程序正常退出。不过,我还是建议你最好在main函数的最后加上return语句,虽然没有这个必要,但这是一个好的习惯。

注意,vc6不会在目标文件中加入return 0;,大概是因为vc6是98年的产品,所以才不支持这个特性。现在明白我为什么建议你最好加上return语句了吧!不过,gcc3.2(Linux下的C编译器)会在生成的目标文件中加入return 0;。

热心网友 时间:2023-10-05 09:16

double pn(double n,double x)
{
if(n==0)return(1);
else if(n==1) return(x);
else return(((2*n-1)*x-pn(n-1,x)-(n-1)*pn(n-2,x))/n);
}

main()
{
double n,x;
scanf("%lf%lf",&n,&x);
printf("%.2lf",pn(n,x));
getch();
}
这个比较简单
但是当n,x过大就不行了
不知道是不是超出范围
望楼主采纳

热心网友 时间:2023-10-05 09:17

#include <stdio.h>
#include <stdlib.h>

float myfunction(int n,int x)
{
if (0 == n)
{
return 1;
}
else if (1 == n)
{
return x;
}
else
{
return ((2 * n - 1) * x - myfunction(n - 1 , x) - (n - 1) * myfunction(n - 2, x)) / n;
}
}

int main(int argc, char *argv[])
{
int n,x;
float result;
printf("please inputa n,x:");
scanf("%d,%d",&n,&x);
result = myfunction(n,x);
printf("the result is : %f\n",result);
system("pause");
return 0;
}追问int main(int argc, char *argv[])的作用是什么?
好像用int main()就可以,求解释

追答呵呵,在这里都是一样的,只是不同的C标准而已,可以改成int main(),不影响结果:)

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
立秋后钓鱼什么风向好-立秋钓鱼风向怎么选 赱乂砉込儬 怎么读 "赱"读什么? 解决电脑无法搜索到iPhone热点的问题如何修复iPhone热点无法在电脑上显... 电脑搜不到iphone12热点 iphone开热点给电脑搜不到 国企的地产有哪些 国企下设公司是什么意思? 红加蓝加绿是什么色. 梦幻西游75级开三倍抓鬼一轮有多少经验 c语言编程问题,循环+递归 c语言程序设计问题(递归) 编程序,用递归函数 C语言怎样用递归方法编写程序 求s=1!+2!+3!+...10! c语言 编写程序 使用递归 用C++语言编写程序,递归函数 编写程序,用递归的方法求1+2+3+…+n,可设递归函数为fun5()。(1)递归结束条件为n=0_百度问一问 中级会计财务管理一个书上例题 中级会计的一道例题,没看明白,求指点。 我要买会计中级习题 中华和东奥 哪个好、 (长期股权投资转换 中级会计实务例题) 中级会计师,中级会计实务例题5我怎么看不懂。?求解题思路,给30分高分!! 中级财务会计习题1 汽车除了点烟口有别的地方可以接usb充电吗? 如何找回以前的? 中级会计 财务管理例题 (跪求) 如何找回以前的? 汽车上的USB,这样我怎么在车上充电 以前用的怎么才能找回来? 怎样找回原来注册的 编程一个C语言程序,使用递归方法,输入两个数,采用辗转相除法来计算最大公约数 编写递归函数将一个整数逆序输出,求C程序 中信证券至信版和中信建投有什么区别? 中信证券至信版的介绍 编写程序,用递归法将一个十进制整数转换成二进制数。 中信证券至信版的软件简介 如何为中信证券至信版增加一个自选股2 中信证券至信版 如何修改密码 分红型保险退保 中信证券至信手机版如何才能下载 在单片机中,什么是补码?最好能给出定义和例子,谢谢 补码的准确定义 怎么取消电脑的密码 行李箱密码忘记了,怎么办 解放军军衔一杠三星是代表什么? 有一杠的是什么 英语句子里面一杠代表什么 福建省2012年二级建造师什么时候考试 台式机连接无线网速慢怎么办 送给小朋友们的明信片怎样做?