滴水逆向联盟
标题:
基于visual Studio2013解决C语言竞赛题之1025Bessel函数
[打印本页]
作者:
大灰狼
时间:
2014-8-28 08:28
标题:
基于visual Studio2013解决C语言竞赛题之1025Bessel函数
题目
download.png
(88.76 KB, 下载次数: 287)
下载附件
保存到相册
2014-8-28 08:27 上传
解决代码及点评
<pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"></pre><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code">/*
功能:25. Bessel函数Jn(X)有以下的递推关系:
J[n+1](x)=(2n+1)/x*J[n](x)-J[n-1](x)
并且已知:J[0](x)=sinx/x
J[1](x)=sinx/x^2-cosx/x
编写程序,利用递推关系,由任意的n和x≠0求Jn(X)。
注:本程序不允许使用数组。
时间:16:00 2013/10/24
*/
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
double Bessel(int n, double x); //Bessel函数原型
void main()
{
int n;
scanf_s("%d", &n);
double x;
scanf_s("%lf", &x);
double result = 0;
if (x != 0) //判断x是否为零,x=0函数趋于无穷,x!=0则进行计算函数
{
result = Bessel(n, x);
printf("J[n](x) = %f\n",result);
}
else
{
printf("The function of bessel's is went to ∞ !");
}
system("pause");
}
double Bessel(int n, double x)
{
if (n == 1) //结束条件1
{
return sin(x) / x;
}
else if (n == 2) //结束条件2
{
return sin(x) / (x*x) - cos(x)/x;
}
else
{
return (2 * n + 1) / x * Bessel(n - 1, x) - Bessel(n - 2, x); //递归条件
}
}</pre><br></pre><br></pre></pre></pre>
欢迎光临 滴水逆向联盟 (http://dtdebug.com/)
Powered by Discuz! X3.2