PAT(Basic Level) Practice : 1056 组合数的和 (15分)
1056 组合数的和 (15分)
思路
找规律
n个数字:a1,a2,...an
比如有5个数
a1,a2,a3,a4,a5
对于a1:a1a2,a1a3,a1a4,a1a5
等于 a1 * 10 * (5-1)+a2+a3+a4+a5
依次类推,再加起来得到公式。
公式是:(a1+a2+...+an)11(n-1)
代码
#include <iostream>
#include <vector>
#include <string>
#include <cstdio>
//scanf printf防止超时
#include <algorithm>
//vector的sort
#include <sstream>
//转换
using namespace std;
#include<iomanip>
//精度
#include<cmath>
//round四舍五入取整
int main()
{
int n;
cin>>n;
int sum=0;
for(int i=0;i<n;i++)
{
int t;
cin>>t;
sum+=t;
}
cout<<sum*(n-1)*11<<endl;
return 0;
}