4 条题解

  • 2
    @ 2025-2-26 16:37:29
    #include <bits/stdc++.h>
    using namespace std;
    
    
    int half(int a) {
        if (a == 1) {
            return 1; 
        }
        int count = 0;
        for (int i = a / 2; i >= 1; i--) {
            count += half(i); 
        }
        return count + 1; 
    }
    
    int main() {
        int n;
        cin >> n;
        int ans = half(n);
        cout << ans << endl;
        return 0;
    }
    
    • 2
      @ 2025-2-26 16:34:20
      ```cpp
      #include <iostream>
      using namespace std;
      
      const int MAXN = 1005;
      int dp[MAXN];
      
      int solve(int n)
      {
          for(int i = 0;i<=n;i++)
          {
              dp[i] = 1;
          }
          for(int i = 2;i<=n;i++)
          {
              for(int j = 1;j<=i/2;j++)
                  dp[i] += dp[j];
          }
          return dp[n];
      }
      int main()
      {
          int n;
          cin>>n;
          int ans = solve(n);
          cout<<ans<<endl;
          return 0;
      }
      
      • -3
        @ 2024-12-5 21:08:13

        #include using namespace std; class Solution { public: int SumNum(int num) { int sum =0; //递归结束条件: if (num<= 1) return 1; for (int i = 0; i <=num / 2; i++) { sum += SumNum(i); } return sum; } };

        int main() { Solution s; int n = 0; cin >> n; cout << s.SumNum(n) << endl;; return 0; }

        • -4
          @ 2024-12-11 21:25:35

          #include<stdio.h> int a[1050];//设置一个数组,可以避免重复计算 void fun(int n) { int i; //当n=1时数组数为1 a[0]=1; a[1]=1; for(i=2;i<=n;i++) { if(i%20)//数字n为偶数时,是n-1的数组可能数加上n/2的数组可能数 a[i]=a[i-1]+a[i/2]; if(i%21)//数字n为奇数时,与n-1的数组可能数相等 a[i]=a[i-1]; } } int main() { int i,n; scanf("%d",&n); fun(n); printf("%d\n",a[n]); return 0; } 这个全过

          • 1

          信息

          ID
          5086
          时间
          1000ms
          内存
          125MiB
          难度
          2
          标签
          递交数
          140
          已通过
          89
          上传者