幸运数代码,看看问题在哪儿
 #include<bits/stdc++.h>
using namespace std;

int main(){
int i,j,k,n,t,T;
int a[1000];
cin>>t;
while(t--)
{
    scanf("%d",&k);
memset(a,0,sizeof(a));
for(i=1; ;i++)
if(k<=pow(2,i+1)-2)  break;
n=i;
if(k%2==0) a[1]=7;
else a[1]=4;
for(i=2;i<=n;i++){
T=pow(2,i);
if(  0<(int)(k-(pow(2,n)-2))%T   &&(int)(k-(pow(2,n)-2))%T<=pow(2,i-1))  a[i]=4;
else a[i]=7;
}
for(i=n;i>=1;i--)
printf("%d",a[i]);
printf("\n");
}