C/C++ 计算多项式值 (GESP二级)
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,可以使用循环累加的方式计算多项式的值。具体步骤如下:
- 读入输入的x和n。
- 初始化多项式的值为0。
- 使用循环从1到n,每次迭代计算当前项的值,并累加到多项式的值中。
- 输出多项式的值,保留两位小数。
代码实现
#include <iostream>
#include <iomanip>
#include <cmath>
int main() {
float x;
int n;
std::cin >> x >> n;
float result = 0;
for (int i = 0; i <= n; i++) {
result += pow(x, i);
}
std::cout << std::fixed << std::setprecision(2) << result << std::endl;
return 0;
}
时间复杂度分析
由于需要计算x的n次幂,所以时间复杂度为O(n)。
原文地址: https://www.cveoy.top/t/topic/qjcV 著作权归作者所有。请勿转载和采集!