解题思路:
注意事项:
参考代码:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] arr = new int[n]; for (int i = 0; i < n; i++) { arr[i] = sc.nextInt(); } //深度 int depth = 0; //最大权值之和的所在层 int res = 0; //最大权值之和 int max = 0; //当前层权值之和 int count = 0; for (int i = 0; i < n; ) { for (int j = 0; j < Math.pow(2, depth); j++) { count += arr[i++]; if (i >= n){ break; } } if (count > max) { res = depth + 1; max = count; } depth++; count = 0; } System.out.println(res); } }
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:1152 |
C语言训练-求1+2!+3!+...+N!的和 (C语言代码)浏览:2498 |
剪刀石头布 (C语言代码)不知道怎么直接在scanf中用枚举变量浏览:1436 |
Pascal三角 (C语言代码)格式错误浏览:551 |
不会做的浏览:954 |
【排队买票】 (C语言代码)浏览:944 |
wu-理财计划 (C++代码)浏览:907 |
2006年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:503 |
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:616 |
简单的a+b (C语言代码)浏览:661 |