hdu2772Matchsticks

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2772

题意:根据所给火柴的数目,算出最小最大的数字。

感想:其实,这种题目,想用穷举法列出来,多列些例子,看看有没有什么规律。额,代码有点长,但是不难理解。

参考代码:

#include <iostream>
int main()
{
    int t,n,min,max_1,max_2,min_1,min_2;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        if(n<=1)
            return 0;
        else if(n==2)
            printf("1 1\n");
        else if(n==3)
            printf("7 7\n");
        else if(n==4)
            printf("4 11\n");
        else if(n==5)
            printf("2 71\n");
        else if(n==6)
            printf("6 111\n");
        else if(n==7)
            printf("8 711\n");
        else if(n==8)
            printf("10 1111\n");
        else if(n==9)
            printf("18 7111\n");
        else if(n==10)
            printf("22 11111\n");
        else if(n==11)
            printf("20 71111\n");
        else if(n==12)
            printf("28 111111\n");
        else if(n==13)
            printf("68 711111\n");
        else if(n==14)
            printf("88 1111111\n");
        else
        {
            max_1=(n-15)/7;//这是求最小数的周期
            max_2=(n-14)%7;//这是求周期中的第几个
            if(max_2==1)
                printf("108");
            else if(max_2==2)
                printf("188");
            else if(max_2==3)
                printf("200");
            else if(max_2==4)
                printf("208");
            else if(max_2==5)
                printf("288");
            else if(max_2==6)
                printf("688");
            else if(max_2==0)
                printf("888");
            if(max_1)
    while(max_1--)
     printf("8");
    printf(" ");
    min_1=n/2-1;//这是求最大数的周期
    min_2=n%2;;//这是求周期中的第几个
    if(min_2==0)
     printf("1");
    else if(min_2==1)
     printf("7");
    while(min_1--)
     printf("1");
    printf("\n");
        }
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值