Skip to content

1056 组合数的和

Statement

Metadata

  • 作者: CHEN, Yue
  • 单位: 浙江大学
  • 代码长度限制: 16 KB
  • 时间限制: 400 ms
  • 内存限制: 64 MB

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

Solution

#include <bits/stdc++.h>
using namespace std;
int main() {
    int n, a[10], i, j, total = 0;
    cin >> n;
    for (i = 0; i < n; i++) {
        cin >> a[i];
    }
    for (i = 0; i < n; i++) {
        for (j = i + 1; j < n; j++) {
            total += a[i] * 10 + a[j];
        }
    }
    for (i = n - 1; i >= 0; i--) {
        for (j = i - 1; j >= 0; j--) {
            total += a[i] * 10 + a[j];
        }
    }
    cout << total << endl;
}

Last update: May 4, 2022
Back to top