原创
闫小林
C语言入门到精通
1月29日
收录于话题
#C语言实战练习
103个
“要成为绝世高手,并非一朝一夕,除非是天生武学奇才,但是这种人…万中无一”
——包租婆
这道理放在C语言学习上也一并受用。在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C语言小白进阶到高手,需要经历的是日积月累的学习。
那么如何学习呢?
当然是每天都练习一道C语言题目!!
作者
闫小林
白天搬砖,晚上做梦。我有故事,你有酒么?
例72:C语言编程用递归方法求n阶勒让德多项式。
解题思路:勒让德多项式是描述矩形表面和口径的另外一组多项式集合,它的优点是具有正交性。由于存在正交性条件,高阶项系数趋于零,并且增加和删除一个项对其他项没有影响。
勒让德方程的解可写成标准的幂级数形式。
当方程满足 |x| < 1 时,可得到有界解(即解级数收敛)。
并且当n 为非负整数,即n = 0, 1, 2,... 时,在x = ± 1 点亦有有界解。
这种情况下,随n 值变化方程的解相应变化,
构成一组由正交多项式组成的多项式序列,这组多项式称为勒让德多项式
源代码演示:
#include<stdio.h>//头文件
int main()//主函数
{
int temp,num;//定义整型变量
float num_Polynomial;//定义浮点型变量
float polynomial(int,int);//函数声明
printf("输入num & temp:");//提示语句
scanf("%d,%d",&num,&temp);//键盘输入
num_Polynomial=polynomial(num,temp); //求值
printf("Polynomial=%6.2f\n",num_Polynomial);//输出结果
return 0;//主函数返回值为0
}
float polynomial(int number,int x)//自定义函数
{
if(number==0)//if语句判断number符合哪一个条件
{
return(1);
}
else if(number==1)
{
return(x);
}
else
{
return(2*number-1)*x*polynomial((number-1),x)-(number-1)*polynomial((number-2),x)/number;
}
}
编译运行结果如下:
输入num & temp:5,5
Polynomial=2924185.75
--------------------------------
Process exited after 4.81 seconds with return value 0
请按任意键继续. . .