1150: 搭数字Ⅰ
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 116 Solved: 26
[ Submit][ Status][ Web Board]
Description
楠哥哥是个小屁孩,喜欢玩筷子。有天他发现若干根筷子可以搭成一些数字。如图
现在就有疑问了,给定n(2<=n<100)根筷子,那个可以组成的最小数是多少?
Input
每行给定一个筷子数量n (2<=n<100)
Output
每行输出用这n根筷子所能组成的最小数。
Sample Input
3
6
7
15
Sample Output
7
0
8
108
【解析】
这种题目肯定是规律题大家就应该把前面的都算出来然后找规律了...算到15到21的时候我们发他们分别是108,188
200,208,288,688,888,22的时候我们发现它是1088再往后其实就是15道21这里面的数加8...
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int n,i,j,k;
int a[25]={0,0,1,7,4,2,0,8,10,18,22,20,28,68,88,108,188,200,208,288,688,888};
while(~scanf("%d",&n))
{
if(n<=21)
{
printf("%d\n",a[n]);
}
else if(n>21)
{
printf("%d",a[(n%7)+14]);
k=(n/7)-2;
for(j=0;j<k;j++)
printf("8");
printf("\n");
continue;
}
}
return 0;
}