一层一层加就好了
C++ 代码
#include<bits/stdc++.h>
using namespace std;
int n,x;
int main(){
cin>>n;
int t=1,k=1;
long long sum=-0x7fffffff,depth=1;
long long tempt=t,tempsum=0;
for(int i=1;i<=n;i++){
cin>>x;
tempt--;
tempsum+=x;
if(!tempt or i==n){//加完一层或者是所有数字都计算完了
if(tempsum>sum){
sum=tempsum;
depth=k;
}
t*=2;
k++;//层数加1
tempt=t;
tempsum=0;//复位
}
}
cout<<depth;
}