C/C++ 计算多项式值 (GESP二级)

**题目描述:**

假定多项式的形式为x^n + x^(n-1) + … + x^2 + x + 1,请计算给定单精度浮点数x和正整数n值的情况下这个多项式的值。x在float范围内,n≤1000000。多项式的值精确到小数点后两位,保证最终结果在float范围内。

**输入描述:**

输入仅一行,包括x和n,用单个空格隔开。x在float范围内,n ≤ 1000000。

**输出描述:**

输出一个实数,即多项式的值,精确到小数点后两位。保证最终结果在float范围内。

**用例输入 1:**

2.0 4

**用例输出 1:**

31.00

思路

根据题目描述,多项式的形式为x^n + x^(n-1) + … + x^2 + x + 1,可以使用循环累加的方式计算多项式的值。具体步骤如下:

  1. 读入输入的x和n。
  2. 初始化多项式的值为0。
  3. 使用循环从1到n,每次迭代计算当前项的值,并累加到多项式的值中。
  4. 输出多项式的值,保留两位小数。

代码实现

#include <iostream>
#include <iomanip>
#include <cmath>

int main() { float x; int n; std::cin >> x >> n;

float result = 0;
for (int i = 0; i &lt;= n; i++) {
    result += pow(x, i);
}

std::cout &lt;&lt; std::fixed &lt;&lt; std::setprecision(2) &lt;&lt; result &lt;&lt; std::endl;

return 0;

}

时间复杂度分析

由于需要计算x的n次幂,所以时间复杂度为O(n)。

C/C++ 计算多项式值 (GESP二级)

原文地址: https://www.cveoy.top/t/topic/qjcV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录