不理解为啥不对
查看原帖
不理解为啥不对
1233392
RY111楼主2024/8/4 14:04
//这个是我的
//我没用层数,用第二个参数表示父母的数值,就改了这,输出就不对了
#include<bits/stdc++.h>
using namespace std;

int a[10010];

int dfs(int dep, int x) {
    if(x==1)
return 0;    
    int cnt = 0;
    for(int i = 1; i <= x/2; i++) {
      
            a[dep] = i;
            cnt += dfs(dep + 1, x - i);
        
    }
    return cnt;
}

int main() {
    int n;
    cin >> n;
    a[1] = n;
    cout << dfs(2, n) << endl;
    return 0;
}
  //这个是答案
  #include <iostream>
using namespace std;
int a[10001];
int dfs(int dep){
  int res=1;
  for(int i=1;i<=a[dep-1]/2;i++){
    a[dep]=i;//计算每一层的个数
    res+=dfs(dep+1);//将每一层的个数累加
  }
  return res;//返回的是每一层的个数
}
int main()
{
  int n;cin>>n;
  a[1]=n;//第一层是 6
  cout<<dfs(2)<<"\n";
  return 0;
}


2024/8/4 14:04
加载中...