计算多项式的值
GESP二级练习,基本数学函数练习,难度★✮☆☆☆。
luogu-B2080 计算多项式的值
题目要求
题目描述
假定多项式的形式为 … ,请计算给定单精度浮点数 和正整数 值的情况下这个多项式的值。多项式的值精确到小数点后两位,保证最终结果在 double 范围内。
输入格式
输入仅一行,包括 和 ,用单个空格隔开。
输出格式
输出一个实数,即多项式的值,精确到小数点后两位。保证最终结果在 double 范围内。
样例输入 #1
2.0 4
样例输出 #1
31.00
数据范围
在 double 范围内,。
题目分析
- 读取输入的整数 ,表示计算 时累加到 。
- 使用循环从 到 ,计算每个项的值并累加到 的值中。具体来说,循环中计算每个项的值时,需要计算 ,然后将 除以 ,得到当前项的值。将这个值累加到 的值中,得到最终的 值。
- 输出计算得到的 的值,保留小数点后 位。
{% include custom/custom-post-content-inner.html %}
示例代码
#include <cstdio>
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int n; // 定义整数变量n
double x; // 定义浮点数变量x
cin >> x >> n; // 从输入流中读取x和n的值
double ans = 1; // 初始化答案为1
for (int i = 1; i <= n; i++) { // 从1到n进行循环
double power = pow(x,i); // 计算x的i次方
ans += power; // 将当前项的值累加到答案中
}
printf("%.2f", ans); // 输出答案,保留两位小数
return 0;
}
当然也可以利用等比数列求和公式快速计算
#include <cmath>
#include <cstdio>
#include <iostream>
using namespace std;
int main() {
int n; // 定义整数变量n
double x; // 定义浮点数变量x
cin >> x >> n; // 从输入流中读取x和n的值
double ans = 1; // 初始化答案为1
ans += x * (1 - pow(x, n)) / (1 - x); // 使用等比数列求和公式计算答案
printf("%.2f", ans); // 输出答案,保留两位小数
return 0;
}
{% include custom/custom-post-content-footer.md %}
所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code
“luogu-”系列题目可在 洛谷题库 在线评测。
“bcqm-”系列题目可在 编程启蒙题库 在线评测。
GESP/CSP 认证学习微信公众号

Last updated on