#include<stdio.h>
#include<math.h>
long long n;
long long a[1000000];
long long t[100000];
long long sum=0;
long long mark=0;
int main(){
long long i=0,j;
long long x=-1;
scanf("%lld",&n);
for(i=1;i<=n;i++){
scanf("%lld",&a[i]);
}
/*
n++;
while(n){
n=(long long)n/2;
x++;
}
过不去
*/
/*
x=0;
while(n){
n=(long long)n/2;
x++;
}
过得去
*/
// x=ceil(log(n+1)/log(2));过得去
t[1]=2;
for(i=2;i<=x;i++)t[i]=t[i-1]*2;
j=1;
for(i=1;i<=x;i++){
long long middle=0;
for(j;j<=t[i]-1;j++){
middle+=a[j];
}
if(middle>sum){
mark=i;
sum=middle;
}
}
printf("%lld",mark);
}
判断深度那一段第一种方法为什么过不去,有什么问题吗,实在是整不明白.