PAT Grado B 1023 número mínimo de grupos (20 puntos)

contenido del tema

Se dan un número de 0-9. Puede organizar estos números en cualquier orden, pero debe usarlos todos. El objetivo es hacer que el número resultante sea lo más pequeño posible (tenga en cuenta que 0 no puede ser el primero). Por ejemplo: dados dos 0, dos 1, tres 5 y un 8, el número más pequeño que podemos obtener es 10015558.

Dado un número, escriba un programa para generar el número más pequeño que se pueda formar.

Formato de entrada:

La entrada da 10 enteros no negativos en una línea, en el orden en que tenemos el número 0, el número 1, ... el número 9. Separe los enteros con un espacio. El número total de 10 números no supera los 50, y hay al menos 1 número distinto de cero.

Formato de salida:

Escribe el número más pequeño que se puede formar en una recta.

Muestra de entrada:

2 2 0 0 0 3 0 0 1 0

sin línea en blanco al final

Salida de muestra:

10015558

sin línea en blanco al final

Ideas para resolver problemas

Matriz de estructura para registrar el número restante de cada número y el valor del número. Según el sentido común, para obtener un número pequeño, el número de orden superior debe ser más pequeño que el número de orden inferior, por lo que nos aseguramos de que el primer bit no es 0.  En el caso, la orden Just output.

Código detallado

#include <iostream>
#include <algorithm>
using namespace std;
struct number{
    int sum;  //每个数字的剩余使用个数
    int value;  //该数字的值
}num[10];
int main(){
    int ans = 0; //总数
    for(int i = 0;i<10;i++){
        cin>>num[i].sum;
        ans+=num[i].sum;
    }
    for(int i = 0;i<10;i++){
        num[i].value = i;
    }
    for(int i = 1;i<10;i++){
        if(num[i].sum!=0){
            cout<<num[i].value;
            num[i].sum--;
            ans--;
            break;
        }
    }
    for(int i = 0;i<10;i++){
        while(num[i].sum!=0){
            cout<<num[i].value;
            num[i].sum--;
            ans--;
        }
        if(ans==0)break;
    }
}

Supongo que te gusta

Origin blog.csdn.net/weixin_45660485/article/details/119395927
Recomendado
Clasificación