比赛 20111111 评测结果 C
题目名称 吉祥数 最终得分 0
用户昵称 QhelDIV 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-11-11 09:10:59
显示代码纯文本
  1. #include<fstream>
  2. #include<cmath>
  3. using namespace std;
  4. ifstream fin("ghillie.in");
  5. ofstream fout("ghillie.out");
  6. const int Infinit=100000000;
  7. int n,A[203],Student[203],StudentNum;
  8.  
  9. void Divide_Plus(int *obj,int Index)
  10. {
  11. int i,sum=0,Remaind=*obj;
  12. for(;Remaind!=0;)
  13. {
  14. sum+=int(pow(double(Remaind%10),Index+1));
  15. Remaind/=10;
  16. }
  17. *obj=sum;
  18. }
  19.  
  20. void check(int Obj)
  21. {
  22. int i;
  23. for(i=1;i<=StudentNum;i++)
  24. if(Obj==Student[i])
  25. Student[i]=Infinit;
  26. }
  27.  
  28. int Compare(const void *p,const void *q)
  29. {
  30. return *(int *)p - *(int *)q;
  31. }
  32.  
  33. int main()
  34. {
  35. int i,j;
  36. fin>>n;
  37. for(j=1;!fin.eof();j++)
  38. fin>>Student[j];
  39. StudentNum=j-1;
  40. for(i=1;i<=n;i++)
  41. {
  42. for(j=1;j<=StudentNum;j++)
  43. A[j]=Student[j];
  44. for(j=1;j<=StudentNum;j++)
  45. if(A[j]!=Infinit)
  46. Divide_Plus(&A[j],i);
  47. for(j=1;j<=StudentNum;j++)
  48. check(A[j]);
  49. }
  50. qsort(Student+1,StudentNum,sizeof(int),Compare);
  51. for(i=1;i<=StudentNum;i++)
  52. if(Student[i] != Infinit)
  53. fout<<Student[i]<<' ';
  54. fin.close();
  55. fout.close();
  56. return 0;
  57. }