Extra约会大作战 浙江工商大学2015年新生赛

Description:

在一个月黑风高的夜晚,Extra约他的女神出来吃饭,然而天公不作美,女神因为喝了太多热水不能如期赴约。孤单的Extra只能一个人在食堂里看着筷子发呆。突然,Extra想到了一个游戏,他发现若干根筷子可以搭成一些数字。如图:

(搭出数字1需要两根筷子,数字2需要5根筷子……)

现在,Extra想知道,用n根筷子(全部用上),可以组成最小的数是多少?

注意!因为Extra上幼儿园的时候没有好好听课,所以他不会搭出数字0。

Input:

首先输入一个T,代表有T组测试数据。(1<=T<=50)

对于每组测试实例,输入一个整数n,代表有n根筷子。(2<=n<=50)

Output:

对于每组测试实例,输出一行代表这n根筷子能组成的最小数字。

Sample Input:
2
2
10
Sample Output:
1
22


题解:找个规律就好了,A出的代码都是穷举的我也是醉了,幸好我把n改小了;


代码;
#include<stdio.h>
int data[]={0,0,1,7,4,2,6,8,16,18,22,26,28,68,88};
int data2[]={16,18,22,26,28,68,88};
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        int n;
        scanf("%d",&n);
        if(n<15)
            printf("%d\n",data[n]);
        else
        {
            printf("%d",data2[(n-15)%7]);
            for(int i=1;i<=(n-8)/7;i++)
            printf("8");
            printf("\n");
        }
    }
return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值