_Intrepid 2021-04-01 18:51 采纳率: 100%
浏览 117
已采纳

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

交错级数求和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;
}
  • 写回答

4条回答 默认 最新

  • 小白小白你好菜 2021-04-05 00:54
    关注

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

    #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);
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 有没有办法利用libusb读取usb设备数据
  • ¥15 为什么openeluer里面按不了python3呢?
  • ¥15 关于#matlab#的问题:训练序列与输入层维度不一样
  • ¥15 关于Ubuntu20.04.3LTS遇到的问题:在安装完CUDA驱动后,电脑会进入卡死的情况,但可以通过键盘按键进入安全重启,但重启完又会进入该情况!
  • ¥15 关于#嵌入式硬件#的问题:树莓派第一天重装配置python和opencv后第二天打开就成这样,瞎捣鼓搞出来文件夹还是没把原来的界面调回来
  • ¥20 Arduino 循迹小车程序电路出错故障求解
  • ¥20 Arduino 循迹小车程序电路出错故障求解
  • ¥15 C++数组中找第二小的数字程序纠错
  • ¥15 wannier复现图像时berry曲率极值点与高对称点严重偏移
  • ¥15 利用决策森林为什么会出现这样·的问题(关键词-情感分析)