题目链接:
https://pintia.cn/problem-sets/994805260223102976/problems/994805271455449088
AC代码:
#include <iostream>
#include <cstdio>
#include <cmath>
#include <vector>
#include <stack>
using namespace std;
int a[13];
int main(){
int N;
scanf("%d",&N);
for(int i=0;i<N;i++){
scanf("%d",&a[i]);
}
int sum=0;
for(int i=0;i<N;i++){
for(int j=0;j<N;j++){
if(i==j){
continue;
}
else{
sum+=a[i]*10+a[j];
}
}
}
printf("%d\n",sum);
}
二刷:
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
const int maxn=12;
int a[maxn]={0};
int main(){
int N;
scanf("%d",&N);
for(int i=0;i<N;i++){
scanf("%d",&a[i]);
}
int sum=0;
sort(a,a+N);
//一开始以为加了排序,j可以从i+1开始,然而,无法遍历所有的组合数,所以只能双重循环
for(int i=0;i<N;i++){
for(int j=0;j<N;j++){
if(i==j)
continue;
else
sum+=a[i]*10+a[j];
}
}
printf("%d",sum);
return 0;
}