1023 组个最小数 (20 分)

简介: 给定数字 0-9 各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意 0 不能做首位)。例如:给定两个 0,两个 1,三个 5,一个 8,我们得到的最小的数就是 10015558。现给定数字,请编写程序输出能够组成的最小的数。


给定数字 0-9 各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意 0 不能做首位)。例如:给定两个 0,两个 1,三个 5,一个 8,我们得到的最小的数就是 10015558。

现给定数字,请编写程序输出能够组成的最小的数。

输入格式:

输入在一行中给出 10 个非负整数,顺序表示我们拥有数字 0、数字 1、……数字 9 的个数。整数间用一个空格分隔。10 个数字的总个数不超过 50,且至少拥有 1 个非 0 的数字。

输出格式:在一行中输出能够组成的最小的数。

输入样例:

2 2 0 0 0 3 0 0 1 0

输出样例:

10015558

只能说是水题了,没有技术难度,你会发现20分就这

思路:一个数组存数字,每打印一个数字就减一

那么代码如下:


C语言:


#include <stdio.h>
int main() {
  int a[10], n = 0;
  int i;
  for (i = 0; i < 10; i++) {
    scanf("%d", &a[i]);
    n += a[i];
  }
  i = 1;
  while (1) {
    if (a[i] == 0) {
      i++;
    } else {
      a[i]--;
      printf("%d", i);
      n--;
      break;
    }
  }
  i = 0;
  while (n > 0) {
    if (a[i] != 0) {
      printf("%d", i);
      a[i]--;
      n--;
    } else {
      i++;
    }
  }
  return 0;
}


C++:


#include <iostream>
using namespace std;
int main() {
  int a[10], n = 0;
  int i;
  for (i = 0; i < 10; i++) {
    cin >> a[i];
    n += a[i];
  }
  i = 1;
  while (1) {
    if (a[i] == 0) {
      i++;
    } else {
      a[i]--;
      cout << i;
      n--;
      break;
    }
  }
  i = 0;
  while (n > 0) {
    if (a[i] != 0) {
      cout << i;
      a[i]--;
      n--;
    } else {
      i++;
    }
  }
  return 0;
}


相关文章
|
自然语言处理 数据格式
【DSW Gallery】基于ModelScope的中文GPT-3模型(1.3B)的微调训练
本文基于ModelScope,以GPT-3(1.3B)为例介绍如何使用ModelScope-GPT3进行续写训练与输入输出形式的训练,训练方式不需要额外指定,训练数据集仅包含 src_txt 时会进行续写训练,同时包含 src_txt 和 tgt_txt 时会进行输入输出形式的训练。
【DSW Gallery】基于ModelScope的中文GPT-3模型(1.3B)的微调训练
|
12月前
|
机器学习/深度学习 人工智能 自然语言处理
探索人工智能的未来:机器学习与深度学习的融合之旅
【9月更文挑战第35天】在这篇文章中,我们将深入探讨人工智能的两大支柱——机器学习和深度学习。我们将通过代码示例和实际应用案例,揭示它们如何相互补充,共同推动AI技术的发展。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和启示。
213 0
|
监控 测试技术 持续交付
|
12月前
|
存储 安全 网络安全
探索未来网络:量子互联网的崛起
【10月更文挑战第1天】本文旨在探讨量子互联网的基本概念、技术原理以及其对未来通信和网络安全的影响。通过对量子纠缠、量子密钥分发等核心技术的分析,揭示量子互联网如何实现超高安全性的通信,并讨论其在实际应用中的潜在挑战和发展前景。
182 3
|
12月前
|
安全 Android开发 数据安全/隐私保护
Android vs. iOS:移动操作系统的巅峰对决###
【10月更文挑战第18天】 本文深入探讨了Android与iOS两大移动操作系统的核心差异、优势与不足,从用户体验、应用生态、系统更新与安全性等多个维度进行了全面对比。我们旨在揭示两大平台背后的设计理念,帮助用户根据自身需求做出更明智的选择。Android以其开放性和高度可定制性著称,为开发者和用户提供了广阔的创新空间;而iOS则凭借其封闭的生态系统和严格的质量控制,提供了流畅且一致的用户体验。两大系统各有千秋,竞争与共生中推动着移动通信技术的不断进步。 ###
|
机器学习/深度学习 人工智能 安全
探究人工智能在医疗影像诊断中的应用与挑战
人工智能(AI)技术在医疗影像诊断中的应用日益广泛,本文将探讨其应用前景与面临的主要挑战。通过分析现有技术的优势和不足,提出相应的改进建议,旨在为医疗行业提供更高效、准确的诊断解决方案。
385 0
|
设计模式
深入理解观察者模式及其用途
【8月更文挑战第24天】
292 0
|
测试技术 Python
Python教程:利用timeit模块对代码进行性能测试
在Python中,了解代码的性能是优化和改进的关键。timeit模块是Python标准库中的一个工具,用于测量代码片段的执行时间。本文将介绍timeit模块的各种接口、命令行使用方法以及如何对代码中的函数或类进行性能测试。
367 3
|
存储 JSON 算法
谷粒学院(十五)JWT | 阿里云短信服务 | 登录与注册前后端实现(一)
谷粒学院(十五)JWT | 阿里云短信服务 | 登录与注册前后端实现(一)
谷粒学院(十五)JWT | 阿里云短信服务 | 登录与注册前后端实现(一)
|
存储 Oracle 关系型数据库
卸载Oracle软件和数据库(deinstall)
可以使用deinstall命令停止和删除Oracle数据库主目录中的Oracle数据库软件和组件。
368 0