比赛 20111111 评测结果 AAAAAAAAAA
题目名称 吉祥数 最终得分 100
用户昵称 hello! 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-11-11 10:33:57
显示代码纯文本
#include<cstdio>
#include<iostream>
#include<cstring>//strcmp(char,char)==0;
#include<iomanip>//<<setiosflags(ios::fixed)<<setprecision()<<
#include<cstdlib>
using namespace std;
int cmp(const void *a,const void *b)
{
	return *(int *)a-*(int *)b;
}
int main()
{
	freopen("ghillie.in","r",stdin);
	freopen("ghillie.out","w",stdout);
	int n;
	cin>>n;
	int num[201]={0},chang[201],t=0;
	char cc[3];
	int i;
	for(i=1;;i++)
	{
		cin>>cc;
		int ll;
		ll=strlen(cc);
		if(ll==1)
		{
			num[i]=cc[0]-'0';
			chang[i]=num[i];
		}
		if(ll==2)
		{
			int qq,aa;
			qq=cc[0]-'0';
			aa=cc[1]-'0';
			qq=qq*10;
			num[i]=qq+aa;
			chang[i]=num[i];
		}
		if(ll==3)
		{
			int qq,aa,zz;
			qq=cc[0]-'0';
			aa=cc[1]-'0';
			zz=cc[2]-'0';
			qq=qq*100;
			aa=aa*10;
			aa=aa+zz;
			num[i]=qq+aa;
			chang[i]=num[i];
		}
		if(num[i]==num[i-1])
		{
			break;
		}
	}
	t=i;
	t--;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=t;j++)
		{
			if(chang[j]!=0)
			{
			    int sum=0,temp=chang[j];
				while(temp!=0)
			    {
				    int qq;
				    qq=temp%10;
					for(int z=1;z<=i;z++)
					{
						qq=qq*qq;
					}
					sum=sum+qq;
				    temp=temp/10;
			    }
				chang[j]=sum;
			}
		}
		for(int q=1;q<=t;q++)
		{
			for(int w=1;w<=t;w++)
			{
				if(chang[q]==num[w])
				{
					num[w]=0;
				}
			}
		}
		for(int j=1;j<=t;j++)
		{
			if(num[j]==0)
			{
				chang[j]=0;
			}
		}
	}
	qsort(num+1,t,sizeof(num[0]),cmp);
	for(int i=1;i<=t;i++)
	{
		if(num[i]!=0)
		{
			cout<<num[i]<<' ';
		}
	}
	cout<<endl;
	return 0;
}