小秦喜欢数字4和7 现在他想知道,哪些数字仅由4和7组成
其中最小的是4,接着是7,接着是44,接着是47.
现在他想知道第K个数字是多少
输入
第一行一个整数K(1<=K<=1,000,000,000)
输出
第K个的幸运数字
样例
输入复制
1
输出复制
4
思路
见代码:
#include<bits/stdc++.h>
using namespace std;
int n,bak,ss=0;
int main(){
cin>>n;
for(int i=1;i<=n;i*=2){
if(n>i) n-=i;
ss++;
}
int sum=(log(n)/log(2));
int j=1<<sum;
for(int i=1;i<=ss-sum-1;i++) cout<<4;
for(int i=0;i<=sum;i++){
if(n>=j){
cout<<7,n=n-j;
//if(i!=sum) cout<<" ";
}
else{
cout<<4;
//if(i!=sum) cout<<" ";
}
j/=2;
}
cout<<endl;
return 0;
}