1. 程式人生 > >1056 組合數的和 (15 分)

1056 組合數的和 (15 分)

1056 組合數的和 (15 分)

給定 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-1次 ,sum = (x+x*10) * (N-1)

#include<iostream>
using namespace std;
int main()
{
	int N;
	cin >> N;
	int x = 0;
	int sum = 0;
	for (int i = 0; i < N; i++)
	{
		cin >> x;
		sum += (N - 1) *(x+10*x);
	}
	cout << sum;
	return 0;
}