这个程序怎么优化啊,时间超限了?

交错级数求和s=x-x^3/3!+x^5/5!-x^7/7!+......,当最后一项的绝对值小于10-6为止。

输入一个实数x,输出该级数之和的近似值(保留5位小数)。

#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int main()
{
    float a,b,x;
	int c,i,j,k;
    cin>>x;
    b=c=0;
    k=1;
    for(i=1;i<i+1;i=i+2)
	{
		for(j=1;j<=i;j++)
		{
			k=k*j;
		}
		a=((pow(-1,c)*pow(x,i))/k);
		b+=a;
		c++;
		k=1;
		if(fabs(a)<1e-6)break;
	}
	cout<<setiosflags(ios::fixed)<<setprecision(5)<<b;
	return 0;
}

 

我找了半个小时,终于找到这个题目了

#include<stdio.h>
#include<math.h> 
int main(){
	double x, y = 1;
	scanf("%lf", &x);
	double sum = 0, temp;
	int flag = -1;
	for(int i = 1; ; i++){
		flag *= -1;
		temp = pow(x,2*i-1);
		if(i > 1)
			y = y*(2*i-2)*(2*i-1);
		if(temp/y < 0.000001)
			break;
		sum += flag*temp/y;
	}
	printf("%0.5lf", sum);
}

 

你的时间限制是多少?

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632