PAT-B 1056 組合數的和【規律】

Enjoy_process發表於2019-02-24

                                           PAT-B 1056 組合數的和

                https://pintia.cn/problem-sets/994805260223102976/problems/994805271455449088

 

 

題目

給定 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)次成為十位數,(n-1)次從未個位數,設sum為各個數的和,那麼有sum=(sum*10+sum)*(n-1);

C++程式

#include<iostream>

using namespace std;

int main()
{
	int n,x,sum=0;
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&x);
		sum+=x;
	}
	sum=(sum*10+sum)*(n-1);
	printf("%d\n",sum);
	return 0;
}

 

相關文章