3 条题解

  • 0
    @ 2024-5-24 18:32:23

    #include<bits/stdc++.h> using namespace std; const int N = 1e5 + 10; int num[N]; int main(){ int n; cin>>n; int x; while(cin>>x) num[x] = 1; for(int i=2;i<=n+1;i++) { for(int j=1;j<=255;j++) { if(num[j]==1||num[j]==i) { int sum = 0,x = j; while(x) { sum += pow(x%10,i); x/=10; } if(sum < 300&&num[sum]==1) { num[sum]=i; } } } } for(int i = 1;i<=255;i++) { if(num[i] == 1) cout<<i<<" "; } return 0; }

    • 0
      @ 2023-1-14 19:33:44
      #include<bits/stdc++.h>
      using namespace std;
      int mypow(int n, int lun)//按照规则平方
      {
          int sum = 0;
          while (n)
          {
              int t = n % 10;
              sum += pow(t, lun);
              n /= 10;
          }
          return sum;
      }
      struct ac
      {
          int id;//编号
          int panduan;//判断是否淘汰  0淘汰
          int hou;//编号计算之后存放
      }a[1000];
      int main()
      {
          int n;
          while (cin >> n)//轮数
          {
              int t = 0;
              while (cin >> a[t].id)//输入编号
                  a[t++].panduan = 1;//判断先置1  表示不出局
              for (int i = 1;i <= n;i++)//进行几轮操作
              {
                  for (int j = 0;j < t;j++)
                      if (a[j].panduan)//判断是否出局
                          a[j].hou = mypow(a[j].id, i + 1);//平方运算
                  for (int j = 0;j < t;j++)
                      for (int q = 0;q < t;q++)
                          if (a[j].id == a[q].hou && a[j].panduan)
                              a[j].panduan = 0;//出局
              }
              int b[10000], q = 0;
              for (int i = 0;i < t;i++)
                  if (a[i].panduan)
                      b[q++] = a[i].id;
              sort(b, b + q);//从小到大排序
              for (int i = 0;i < q;i++)
                  cout << b[i] << " ";
              cout << endl;
          }
      }
      
      • @ 2023-5-19 12:26:25

        @能麻烦删下题解吗,好多人都在抄

    • -2
      @ 2023-5-25 22:47:36
      #include<bits/stdc++.h>
      using namespace std;
      int c;
      long long a[201],m,b[201],mb;
      long long gen(int x,int y)
      {
          long long can=0;
          while(x>0)
          {
              can=can+pow(x%10,y+1);
              x/=10;
          }
          return can;
      }
      int main()
      {
          scanf("%d",&c);
          int tmp;
          while(scanf("%d",&tmp)!=EOF)
          {
              if(tmp==-1) break;
              a[++m]=tmp; 
          }
          sort(a+1,a+1+m);
          for(int i=1;i<=c;i++)
          {
              mb=0;
              for(int j=1;j<=m;j++)
                  if(a[j]!=0)
                      b[++mb]=gen(a[j],i);
              for(int j=1;j<=mb;j++)
                  for(int k=1;k<=m;k++)
                      if(b[j]==a[k])
                          a[k]=-1;
          }
          for(int i=1;i<=m;i++)
              if(a[i]!=-1)
                  printf("%lld ",a[i]);
          return 0;
      }
      
      • 1

      信息

      ID
      1002
      时间
      1000ms
      内存
      128MiB
      难度
      6
      标签
      递交数
      316
      已通过
      106
      上传者