题目描述
将数列的所有子集中的所有元素加和并保留小数点后两位。
题目分析
按照题目给出的实例我们可以放下,每个数字在这整个加法算式中是有规律的。每个数字出现的次数=(该数字所在次序)x(该数字的倒数次序)
如0.3,在数组中的次序是3,倒数次序是2,因此我们可以发现0.3出现的次数为3x2=6。
因此我们就直接可以在输入过程中直接计算并加和,最后按照个数输出即可。
代码
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
//这个数据类型!
long long number;
cin>>number;
double sum = 0.0;
double n;
for(int i = 0;i < number;i++)
{
cin>>n;
sum += (i + 1) * (number - i) * n;
}
cout<<setiosflags(ios::fixed)<<setprecision(2)<<sum;
return 0;
}
答题用时5min
Q49——finish√