题目
给定 N 个非 0 的个位数字,用其中任意 2 个数字都可以组合成 1 个 2 位的数字。要求所有可能组合出来的 2 位数字的和。例如给定
2、5、8,则可以组合出:25、28、52、58、82、85,它们的和为330。
输入格式:
输入在一行中先给出 N(1 < N < 10),随后给出 N 个不同的非 0 个位数字。数字间以空格分隔。
输出格式:
输出所有可能组合出来的2位数字的和。
输入样例:
3 2 8 5
输出样例:
330
分析
- 观察题目,设有N个数字,组合数字=从N个数字选一个*10+剩余N-1数字中选一个。
- 用一个数组存储N个数,然后两重for循环可轻松解决。
AC代码
#include<iostream>
using namespace std;
int main()
{int N;cin>>N;int i,j,a[N];for(i=0;i<N;i++){cin>>a[i];}int sum=0;for(i=0;i<N;i++)for(j=0;j<N;j++){if(i!=j){sum=sum+a[i]*10+a[j];}}cout<<sum;return 0;
}
更多题解
pat 乙级 题解汇总(持续更新)(C++)