案例2-1.3:数列求和
时间: 2024-05-25 13:18:19 浏览: 162
题目描述:
输入一个正整数n和一个数x,计算以下数列的和:
S = x + 2x^2 + 3x^3 + ... + nx^n
输入格式:
共一行,包含两个正整数n和x,用空格隔开。
输出格式:
共一行,包含一个浮点数,表示数列的和,保留两位小数。
样例输入:
5 3
样例输出:
142.38
数据范围:
1 ≤ n ≤ 1000
-1 < x < 1
算法1:
(暴力枚举) $O(n)$
使用一个循环枚举每一项,累加求和。
时间复杂度
由于使用了一个循环,所以时间复杂度为 $O(n)$。
C++ 代码
算法2:
(等比数列求和公式) $O(1)$
根据等比数列求和公式,可以将数列的和表示为:
S = x(1-x^n)/(1-x) + nx^n/(1-x)
然后直接代入x和n,就可以求出数列的和。
时间复杂度
由于只有一次计算,所以时间复杂度为 $O(1)$。
C++ 代码
阅读全文