编程计算下列公式的值,y=x-x^3/3!+x^5/5!-x^7/7!+…,精确到第n项,其中n=10,x=2.5

如题所述

第1个回答  2011-04-26
double calc(int n, double x)
{
int i;
double result1 = -1.0;
double result2 = 0.0;
double result = 0;
for(i = 0; i < 2 * n -1; i++)
{
result1 *= -1 * x;
result2 *= i;
}
result = result1 / result2;
return result;
}

int main()
{
int n = 10;
int i = 0;
double x = 1.5;
for(i = 0; i < n; i++)
result += calc(n, x);
}追问

运行不出结果 x=2.5 , n=10 答案为0.598472
麻烦再想象 可否交个朋友啊

追答

你确定答案是0.598472,我算出来的是0.997471.
#include

double calc(int n, double x)
{
int i;
double result1 = 1.0;
int result2 = 1.0;
double result = 0.0;
int sign = -1;
for(i = 1; i < 2 * n; i++)
{
result1 *= x;
result2 *= i;
}
for(i = 1; i < n + 1; i++)
{
sign *= -1;
}
result = sign * result1 / result2;
return result;
}

int main()
{
int n = 2;
int i = 0;
double x = 1.5;
double result = 0.0;
for(i = 1; i < n + 1; i++)
result += calc(i, x);
printf("The result is %lf\n", result);
return 0;
}

追问

是的 你再想下吧

追答

你看一下前两项的和是多少,总的和肯定比前两项的和大吧。

第2个回答  推荐于2016-12-02
分析:y=(-1)^(n-1)*x^(2n-1)/(2n-1)! 主要代码如下
int x=2.5,n=10;
double y=0,t=1,t2=1;
for(int i=1;i<n+1;i++){
for(int j=1;j<(2*i-1)+1;j++){
t*=-x; //count x^(2n-1)
t2*=j; //count (2n-1)!
}
i%2==1?y-=t/t2:y+=t/t2; //if n is ood - else +
}追问

你能找出它的迭代公式吗 能把完整的代码写出来吗

追答

double calc(int n, double x){
double y=0,t=1,t2=1;
for(int i=1;i<n+1;i++){
for(int j=1;j<(2*i-1)+1;j++){
t*=-x; //count x^(2n-1)
t2*=j; //count (2n-1)!
}
i%2==1?y-=t/t2:y+=t/t2; //if n is ood - else +
}
return y;
}

void main(){
int n = 10;
double x = 2.5;
printf("x=%3.1lf,n=%d,y=%lf",x,n,calc(n,x));
}
公式不是已经给出了吗?

追问

error C2018: unknown character '0xac'
error C2146: syntax error : missing ';' before identifier 't2'
error C2065: 't2' : undeclared identifier

追答

double calc(int n, double x){
double y=0,t=1,t2=1;
for(int i=1;i<n+1;i++){
for(int j=1;j<(2*i-1)+1;j++){
t*=-x;
t2*=j;
}
i%2==1?y-=t/t2:y+=t/t2;
}
return y;
}

void main(){
int n = 10;
double x = 2.5;
printf("x=%3.1lf,n=%d,y=%lf",x,n,calc(n,x));
}

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网