信息学奥赛c++语言:计算多项式的值
假定多项式的形式为 xn+x(n−1)+xn+x(n−1)+ …+x2+x+1+x2+x+1,请计算给定单精度浮点数 x和正整数 n 值的情况下这个多项式的值。多项式的值精确到小数点后两位,保证最终结果在 double 范围内。输出一个实数,即多项式的值,精确到小数点后两位。保证最终结果在 double 范围内。x 在 double 范围内,n≤1000000。输入仅一行,包括 x 和 n,用单个
·
题目描述
假定多项式的形式为 xn+x(n−1)+xn+x(n−1)+ … +x2+x+1+x2+x+1,请计算给定单精度浮点数 x和正整数 n 值的情况下这个多项式的值。多项式的值精确到小数点后两位,保证最终结果在 double 范围内。
输入格式
输入仅一行,包括 x 和 n,用单个空格隔开。
输出格式
输出一个实数,即多项式的值,精确到小数点后两位。保证最终结果在 double 范围内。
输入输出样例
输入
2.0 4
输出
31.00
说明/提示
x 在 double 范围内,n≤1000000。
代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
double x,n,a=1,b=1;
cin>>x>>n;
// 开始一个 for 循环,循环变量 i 从 1 开始,到 n 结束(包含 n)
// 该循环的作用是计算多项式 1 + x + x^2 + ... + x^n 的和
for(int i=1;i<=n;i++)
{
// 计算 x 的 i 次幂,每次循环将 a 乘以 x
// 第一次循环 a 变为 x,第二次变为 x^2,以此类推
a*=x;
b+=a; // 将当前 x 的幂次结果累加到总和 b 中
}
printf("%.2lf",b);
return 0;
}
更多推荐
所有评论(0)