题面:

古代人认为666是属于魔鬼的数。

不但如此,只要某数字的十进制表示中有三个连续的6,古代人也认为这是个魔鬼的数,比如666,1666,6663,16666,6660666等等。

古代典籍中经常用“第X小的魔鬼的数”来指代这些数,这给研究人员带来了极大的不便。

现在请编写一个程序,可以实现输入X,输出对应的魔鬼数。

输入格式

第一行包含整数T,表示共有T组测试数据。

每组测试数据占一行,包含一个整数X。

输出格式

每组测试数据占一行,输出一个魔鬼数。

数据范围

1T10001≤T≤1000,
1X51071≤X≤5∗107

输入样例:

3
2
3
187

输出样例:

1666
2666
66666
题解:
设f[i][3]表示由i位数字构成的魔鬼数有多少,f[i][j](0<=j<=2)表示由i位数字构成的,开头已经由连续j个6的非魔鬼数有多少个。在计算f的时候,允许前导0的存在。
考虑
01-04 03:53