打表找规律 第25项开始循环
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n;
int a[1010],c[1010];
inline bool cp(int x,int y)
{
return x<y;
}
int main()
{
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
cin>>n;
int x=1;
a[1]=1;
for(int i=2;i<=30;i++)
{
x*=2;
int t=x,l=0;
while(t>0)
{
c[++l]=t%10;
t/=10;
}
sort(c+1,c+l+1,cp);
for(int j=1;j<=l;j++)
{
a[i]*=10;
a[i]+=c[j];
}
x=a[i];
}
// for(int i=1;i<=30;i++)
// cout<<a[i]<<endl;
if(n<=25)
{
cout<<a[n]<<endl;
return 0;
}
cout<<a[(n-25)%6+25]<<endl;
// cout<<a[(n-1)%25+1]<<endl;
fclose(stdin);
fclose(stdout);
return 0;
}