B2080

· · 题解

这种题是不是要写的详细些啊

B2080

方法一

十分简(ruo)单(zhi)的方法,就是直接从 x^n 加到 x^1 ,因为保证不会超范围,所以放心加即可。

另外,计算某个数的幂次方可用 <cmath> 库中的函数 \operatorname{pow}(a,b) 来计算,它代表 a 的 b 次方。(这个也用讲

方法二

观察题中的式子可以很容易的看出此为等比数列,众所周知,等比数列的求和公式为

\operatorname{S}=\dfrac{a1(1-q^n)}{1-q}

把各个数据带进去即可。

//方法一
#include <iostream>
#include <cmath>
#include <cstdio>

using namespace std;

double x,ans = 1;//它最后还加了个一
int n;

int main(){
    cin >> x >> n;
    for (int i = 1;i <= n; ++ i){
        ans += pow (x,i);
    }
    printf ("%.2f\n",ans);//保留两位小数
    return 0;
}
//方法二
#include <iostream>
#include <cmath>
#include <cstdio>

using namespace std;

double x,ans = 1;
int n;

int main(){
    cin >> x >> n;
    ans = 1*(1-pow(x,n+1))/(1-x)*1.0;//公式
    printf ("%.2f\n",ans);
    return 0;
}

\texttt{End.}