08-3. 组个最小数 (20)

本文介绍了一个算法问题,即如何通过给定数量的数字0-9构造出可能的最小数值。输入为0-9各数字的数量,输出则是由这些数字构成的最小数值。文章提供了完整的C语言实现代码。

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

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

输入格式:

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

输出格式:

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

输入样例:
2 2 0 0 0 3 0 0 1 0
输出样例:
10015558

#include <stdio.h>

int main()
{
    int i, zero, num;
    int flag = 0;
    
    scanf("%d", &zero);
    
    for ( i=1; i<10; i++ ) {
        scanf("%d", &num);
        while ( num-- > 0 ) {
            printf("%d", i);
            while ( zero-- > 0 ) {
                printf("0");
            }
            flag = 1;
        }
    }
    if ( !flag ) {
        printf("0");
    }
    printf("\n");
    
    return 0;
}


结果如下,我觉得应该每行记录应该是有一个时间变量,还有一个5左右的变量,现在分有问题,请分析应该改为多少个变量 t_rel_s var1_V var2_V var3_V var4_V var5_V var6_V var7_V -9.89E-300 9.89E-300 5.483799934 3.22E-09 -1.875000007 2.653201742e-314 9.89E-300 5.433800697 3.77E-08 -1.875000007 2.653195344e-314 9.89E-300 5.3852005 4.44E-07 2.000000014 2.653189024e-314 1.986718559291236e-308 5.336800575 5.33E-06 -2.78134247677193e-309 2.6531827553e-314 9.89E-300 5.300000191 3.35E-05 -9.89E-300 2.653177989e-314 9.89E-300 5.251200676 0.000413273 -1.5363793e-316 2.6531716427e-314 9.89E-300 5.202400208 0.005180717 nan 2.653165115e-314 9.89E-300 5.152200699 0.058262348 2.78134247677193e-309 -9.89E-300 9.89E-300 5.113400459 0.381286621 -2.000000014 2.653153899e-314 9.89E-300 5.064200401 4.329406738 2.78134247677193e-309 2.6531473974e-314 9.89E-300 5.013999939 53.07617188 -1.875000007 2.653140973e-314 5.72E-308 4.965400696 359.734375 1.5363793e-316 2.6531361555e-314 9.89E-300 4.928800583 3940.90625 nan 2.65312999e-314 9.89E-300 4.880000114 49170 1.5363793e-316 2.6531236443e-314 9.89E-300 4.829600334 564568 -1.875000007 2.653117168e-314 9.89E-300 4.780799866 6973632 1.5363793e-316 -9.89E-300 9.89E-300 4.731599808 83142656 -1.5363793e-316 2.653104294e-314 9.89E-300 4.68100071 964288512 2.78134247677193e-309 2.653097793e-314 9.89E-300 4.631199837 12444237824 -1.5363793e-316 2.653091239e-314 9.58E-308 4.582000732 1.33913E+11 -1.5363793e-316 2.653085022e-314 9.89E-300 4.532800674 1.69769E+12 -9.89E-300 2.653078676e-314 9.89E-300 4.484800339 1.97088E+13 2.000000014 2.6530724334e-314 9.89E-300 4.434800148 2.3609E+14 -1.875000007 2.653066061e-314 9.89E-300 4.386400223 2.82331E+15 1.5363793e-316 -9.89E-300 9.89E-300 4.337200165 1.82E+16 -1.5363793e-316 2.6530546895e-314 9.89E-300 4.298800468 2.24E+17 2.000000014 2.653048214e-314 9.89E-300 4.248800278 2.53E+18 -2.78134247677193e-309 2.6530417637e-314 1.34E-307 4.198800087 3.07E+19 1.5363793e-316 2.653035392e-314 9.89E-300 4.148799896 3.66E+20 1.875000007 2.653029071e-314 9.89E-300 4.100999832 2.36E+21 -1.5363793e-316 2.653024253e-314 9.89E-300 4.064599991 2.86E+22 -2.000000014 2.6530179844e-314 9.89E-300 4.015600205 3.18E+23 -1.5363793e-316 -9.89E-300 9.89E-300 3.977600098 2.14E+24 nan 2.653000681e-314 9.89E-300 3.92840004 1.49E+25 1.5363793e-316 2.652990683e-314 9.89E-300 3.890800476 1.57E+26 1.5363793e-316 2.6529778865e-314
最新发布
11-04
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值