1056 组合数的和

一.问题:

给定 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

二.思路:

这个题目挺简单的,关键把题目看清楚

三.代码实现:

#include
#include

int add_num(int a, int b)//数组下标
{
	int add = 0;
	add = (a * 10 + b) + (b * 10 + a);
	return add;
}


int Add_num(int array[], int start, int end)//数组下标
{
	int sum = 0;
	for(int i = start;i < end-1;i++)
	{

		for(int j = i+1;j < end;j++)
		{
			sum += add_num(array[i],array[j]);
		}
	}
	return sum;
}


int main()
{
	// 输入数据
	int N = 0;
	int array[11] = {0};
	scanf("%d", &N);
	int i;
	for (i= 0; i < N; i++)
	{
		scanf("%d", &array[i]);
	}
    int result = Add_num(array, 0,N);
    printf("%d\n",result);
	return 0;
}

你可能感兴趣的:(PTA,(Basic,level)部分题目解析,算法,c++,c语言)