题目描述

假定多项式的形式为 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;
}

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐