小韦老师@神犇营-my0126-计算多项式的值
题目:
描述
假定多项式的形式为 x^n + x^n−1 + … + x^2 + x+1,请计算给定浮点数 x 和正整数 n 值的情况下这个多项式的值。
0 < x ≤ 10,1 < n ≤1000000。
多项式的值精确到小数点后两位,保证最终结果在 double 范围内。
输入
输入仅一行,包括 x 和 n,用一个空格隔开。0 < x ≤ 10,1 < n ≤1000000。
输出
输出一个实数,即多项式的值,精确到小数点后两位。保证最终结果在 double 范围内。
输入样例1
2.0 4
输出样例1
31.00
思路:
整体思路:
求 x^n + x^(n-1) + … + x^2 + x + 1,可以看作是求:
x^n + x^(n-1) + … + x^2 + x^1 + x^0。
我们可以从式子中看到,底数 x 是不变的,变的是指数,从 n 变到 0,我
们也可以理解为从 0 变到 n,因为结果是将每一项加起来,所以顺序没有那
么重要。
我们采用 pow 函数来求幂,pow(a, b) 的值是 a^b。
所以枚举 0~n,把枚举的每一个数作为 x 的指数,然后累加起来即可。
具体步骤:
1.定义 double 型的 x 和 n,并将 x 和 n 输入。
2.定义一个 double 型的变量 sum:
double sum = 0; // 定义累加器,用来存储计算结果,记得初始化为 0
3.枚举 0~n,把每一项累加到累加器中:
for (int i = 0; i <= n; i++) { // 枚举 0~n
sum += pow(x, i); // 把每一项累加到累加器中
}
4.保留 2 位小数输出 sum。
完整代码:
#include <bits/stdc++.h>
using namespace std;
int main() {
double x, n; // 定义浮点型的 x 和 n
cin >> x >> n; // 输入 x 和 n
double sum = 0; // 定义累加器,用来存储计算结果,记得初始化为 0
for (int i = 0; i <= n; i++) { // 枚举 0~n
sum += pow(x, i); // 把每一项累加到累加器中
}
// 将累加器保留两位小数输出
printf("%.2f", sum);
return 0;
}