题面:
古代人认为666是属于魔鬼的数。
不但如此,只要某数字的十进制表示中有三个连续的6,古代人也认为这是个魔鬼的数,比如666,1666,6663,16666,6660666等等。
古代典籍中经常用“第X小的魔鬼的数”来指代这些数,这给研究人员带来了极大的不便。
现在请编写一个程序,可以实现输入X,输出对应的魔鬼数。
输入格式
第一行包含整数T,表示共有T组测试数据。
每组测试数据占一行,包含一个整数X。
输出格式
每组测试数据占一行,输出一个魔鬼数。
数据范围
1≤T≤10001≤T≤1000,
1≤X≤5∗1071≤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的存在。
题解:
考虑