#include <stdio.h> #include <math.h> int n,a[1000005],max=0,i,j,flag=0,h1=1,s=0; int main() { scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); max=a[0]; flag=1; for(int i=1;i<n;i=i*2+1) //计算每层的和,每层的开始的第一个数数组下标为2*n+1 { h1++; //记录一下层数 for(j=i;j<i*2+1;j++) s+=a[j]; if(s>max) //大于最大的和则记录下来 { max=s; flag=h1; } s=0; } printf("%d",flag); //输出层数 return 0; }
0.0分
2 人评分
C语言训练-舍罕王的失算 (C++代码)(都给答案了还算什么)浏览:977 |
C语言考试练习题_排列 (C++代码)浏览:648 |
C二级辅导-同因查找 (C语言代码)浏览:686 |
简单的a+b (C语言代码)浏览:750 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:536 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:453 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:430 |
淘淘的名单 (C语言代码)浏览:1120 |
WU-图形输出 (C++代码)浏览:810 |
简单的a+b (C语言代码)浏览:845 |