妈妈告诉我们不要太暴力,于是,我剪枝了....
真的没有很暴力...
没有很暴力....
暴力....
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
int k = 0;
long long luckyNum[500];
void genLuckyNum(long long num, int cur, int n)
{
if(cur == n)
{
int l = 0,r = 0;
long long ans = num;
while(num)
{
int t = num%10;
if(t == 4) l++;
else r++;
num /= 10;
}
if(l == r)
luckyNum[k++] = ans;
return ;
}
if(cur > n/2)
{
int l = 0,r = 0;
long long tmp = num;
while(tmp)
{
int t = tmp%10;
if(t == 4) l++;
else r++;
tmp /= 10;
}
if(l > n/2 || r > n/2) return ;
}
genLuckyNum(num*10 + 4,cur + 1,n);
genLuckyNum(num*10 + 7,cur + 1,n);
}
int main()
{
for(int i = 2;i <= 10;i += 2)
genLuckyNum(0,0,i);
int T,q;
cin>>T;
while(T--)
{
cin>>q;
for(int i = 0;i < k;++i)
{
if(luckyNum[i] >= q)
{
cout<<luckyNum[i]<<endl;
break;
}
}
}
return 0;
}