100114C

打表找规律 第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;
}
posted @ 2016-10-28 22:58  19992147  阅读(155)  评论(0编辑  收藏  举报