原题链接:P8681 [蓝桥杯 2019 省 AB] 完全二叉树的权值 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
完全二叉树,每一层能储存的节点为2的(k-1)次方个,运用Math.pow函数设计层序遍历储存每层权值。
import java.util.Scanner;
public class P8681 {
public static void main(String args[]) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int m=n;
int[] a=new int[n];
int ans=0;
for(int i=0;i<n;i++) {
a[i]=sc.nextInt();
}
int max=-2147483648;
int k=0;
while(n!=0) {
n/=2;
k++;
}
for(int i=0;i<k;i++) {
int sum=0;
for(int j=(int)Math.pow(2, i);j<Math.pow(2,i+1)&&j<=m;j++) {
sum+=a[j-1];
}
if(sum>max) {
max=sum;
ans=i+1;
}
}
System.out.println(ans);
}
}