描述
数字4与7是幸运数字,那么仅有幸运数字组成的自然数为幸运整数,请找出第k个幸运整数。
输入
一个数字,k,k<=2^233
数据为随机生成的。
输出
所求的幸运整数
样例输入
3
样例输出
44
数字4与7是幸运数字,那么仅有幸运数字组成的自然数为幸运整数,请找出第k个幸运整数。
数据为随机生成的。
3
44
这是一道无厘头的题目,因为他的数据范围给的很大,2的233次方,但是实际上他评测的时候你用long long就够了,这实在是受不了,因为当时是看到别人用几百B就过了,就不想上大数模板,一直以为有什么很牛逼的方法,最后看了看他们读入竟然是cin>> k,然后这个k是long long。如果long long能存2的233次方我感觉这个世界就少了很多伤害了。
所以找一找规律就过去了,这。。。真是服了。
代码。。。。
#include<stdio.h>
int main()
{
long long k,cout = 1, key = 0, i;
char a[250];
scanf("%lld",&k);
while(k>0)
{
cout *= 2;
if(k % cout != 0 && k % cout <= cout / 2)
a[key++] = '4';
else
a[key++] = '7';
k -= cout;
}
for(i = key - 1; i >= 0; i--)
printf("%c", a[i]);
puts("");
}