C++ 计算多项式值 - GESP 二级
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
C++ 代码
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main() {
float x;
int n;
cin >> x >> n;
float result = 0;
for (int i = 0; i <= n; i++) {
result += pow(x, i);
}
cout << fixed << setprecision(2) << result << endl;
return 0;
}
代码解释
- 使用
#include <iostream>头文件进行输入输出操作。 - 使用
#include <cmath>头文件使用pow()函数进行幂运算。 - 使用
#include <iomanip>头文件使用setprecision()函数控制输出精度。 - 使用
float类型存储 x,使用int类型存储 n。 - 使用
for循环遍历 0 到 n 的所有整数 i,计算 x 的 i 次方并累加到 result 中。 - 使用
cout << fixed << setprecision(2) << result << endl;输出结果,其中fixed表示使用定点格式输出,setprecision(2)表示保留两位小数。
优化建议
- 可以使用其他更有效的算法来计算多项式值,例如 Horner's method。
- 可以考虑使用
double类型存储计算结果,以提高精度。 - 可以添加边界检查,例如检查 n 的范围是否合法。
总结
本代码实现了计算多项式值的 C++ 代码,并提供了代码解释和优化建议。希望对你有所帮助!
原文地址: https://www.cveoy.top/t/topic/qj6O 著作权归作者所有。请勿转载和采集!