e心一意 2023-01-25 21:14 采纳率: 0%
浏览 30
已结题

pta** 求幂级数展开的部分和**运行超时

pta题目** 求幂级数展开的部分和**运行超时
7-15** 求幂级数展开的部分和**

img

输入格式:
输入在一行中给出一个实数x∈[0,5]。

输出格式:
在一行中输出满足条件的幂级数部分和,保留小数点后四位。

输入样例:
1.2
输出样例:
3.3201
时间限制
400 ms


```c
#include <stdio.h>
#include <math.h>

int main()
{
    double x,xk,sum=1,k=1,i=1;
    scanf("%lf", &x);
    xk=x;
    while (fabs(xk/k)>= 0.00001)
    {

        sum+=xk/k;
        xk*=x;
        i++;
        k*=i;
    }
    sum+=xk/k;
    printf("%.4lf\n", sum);
}



###### 运行内容超时
###### 用一般算阶乘的方法做,还是超时了,我看到有的博主方法跟我的大相径庭但却是对的

```c
#include <stdio.h>
#include <math.h>

int main()
{
    double x,xk,sum=1,k=1,i=1;
    scanf("%lf", &x);
    xk=x;
    while (fabs(xk/k)>= 0.00001)
    {

        sum+=xk/k;
        xk*=x;
        i++;
        k*=i;
    }
    sum+=xk/k;
    printf("%.4lf\n", sum);
}


不能理解,难到for语句运行时间长一些?

希望各位指点一下我这个蒟蒻

  • 写回答

1条回答 默认 最新

  • 阳光宅男xxb 2023-01-26 10:10
    关注

    我目前看到一个可以改进的地方,就是那个xk/k 你发现没有,在while里面计算了一次,在下面的两个sum那里计算了两次,可以用一个变量存储这个值。这样就只用计算一次了。望采纳哦!!

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月26日
  • 创建了问题 1月25日

悬赏问题

  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题
  • ¥15 企业资源规划ERP沙盘模拟
  • ¥15 树莓派控制机械臂传输命令报错,显示摄像头不存在
  • ¥15 前端echarts坐标轴问题
  • ¥15 ad5933的I2C
  • ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
  • ¥15 数学建模求思路及代码
  • ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题