计算多项式的值

GitHub跳转原题关系图返回列表

递推维护 x 的幂并累加,计算等比多项式 1+x+...+x^n。

OJ: noi_openjudge

题目 ID: ch0105-36

难度:入门

标签:循环数学递推python

日期: 2026-07-30 23:01

题意

计算多项式 1+x+x2++xn1+x+x^2+\cdots+x^n 的值,结果保留两位小数。

思路

power 表示当前的 xix^i。初始时 power = 1 对应 x0x^0,每轮先乘以 base 得到下一次幂,再加入总和。这样不需要反复调用幂函数。

代码

Python代码

python
base_text, exponent_text = input().split()
base = float(base_text)
exponent = int(exponent_text)

power = 1.0
total = 1.0
for _ in range(exponent):
    power *= base
    total += power

print(f"{total:.2f}")

C++代码

cpp
#include <cstdio>


int main(){
    double x;
    int n;
    scanf("%lf",&x);
    scanf("%d",&n);
    double t =1;
    double ans = 1;
    int i;
    for (i=1;i<=n;i++){
        t *=x;
        ans += t;
    }
    printf("%.2lf\n",ans);
    return 0;
}

复杂度

时间复杂度为 O(n)O(n),额外空间复杂度为 O(1)O(1)

总结

连续幂相邻两项只相差一次乘法,循环维护当前幂是最稳定的实现方式。