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; }