2 条题解

  • 0
    @ 2025-10-8 16:51:45
    #include <bits/stdc++.h>
    using namespace std;
    struct node
    {
        int a[510], len;
        node()
        {
            len=1;memset(a,0,sizeof(a));
        }
    };
    node operator*(node n1, int x)
    {
        node no;
        no.len=n1.len;
        for(int i=1;i<=no.len;i++) no.a[i]=n1.a[i]*x;
        no.a[1]+=2;
        for(int i=1;i<=no.len;i++)
        {
            no.a[i+1]+=no.a[i]/10;
            no.a[i]%=10;
        }
        int i=no.len;
        while(no.a[i+1]>0)
        {
            i++;
            no.a[i+1]+=no.a[i]/10;
            no.a[i]%=10;
        }
        while(no.a[i]==0 &&i>1)i--;
        no.len=i;
        return no;
    }
    node f[210];
    int main()
    {
        int n;scanf("%d", &n);
        f[1].len=1;f[1].a[1]=2;
        for(int i=2;i<=n;i++)
        {
             f[i]=f[i-1]*2;
        }
        for(int i=f[n].len;i>=1;i--) printf("%d",f[n].a[i]);
        printf("\n");
        return 0;
    }
    
    • 0
      @ 2025-10-8 16:51:37
      #include<bits/stdc++.h>
      using namespace std;
      struct node
      {
          int a[510],len;
          node()
          {
              len=1;memset(a,0,sizeof(a));
          }
      };
      node operator*(node n1,int x)
      {
          node no;
          no.len=n1.len;
          for(int i=1;i<=no.len;i++) no.a[i]=n1.a[i]*x;
          no.a[1]+=2;
          for(int i=1;i<=no.len;i++)
          {
              no.a[i+1]+=no.a[i]/10;
              no.a[i]%=10;
          }
          int i=no.len;
          while(no.a[i+1]>0)
          {
              i++;
              no.a[i+1]+=no.a[i]/10;
              no.a[i]%=10;
          }
          while(no.a[i]==0 &&i>1)i--;
          no.len=i;
          return no;
      }
      node f[210];
      int main()
      {
          int n;scanf("%d",&n);
          f[1].len=1;f[1].a[1]=2;
          for(int i=2;i<=n;i++)
          {
               f[i]=f[i-1]*2;
          }
          for(int i=f[n].len;i>=1;i--) printf("%d",f[n].a[i]);
          printf("\n");
          return 0;
      }
      • 1

      【递推】[NOIP 2007 普及组] Hanoi 双塔问题

      信息

      ID
      696
      时间
      1000ms
      内存
      128MiB
      难度
      4
      标签
      递交数
      81
      已通过
      35
      上传者