解题思路:
注意事项:按层数来比较,大的作记录
参考代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,sum=0,max=0,j=1,flag=0,l=1;
int a[1000005],i;
scanf("%d",&n);
for(i=1;i<=n;i++){
scanf("%d",&a[i]);
}
flag=1;
max=a[1];
for(i=2;i<=n;i=i*2){
l++;
for(j=i;j<=(i-1)*2+1;j++){
sum+=a[j];
}
if(sum>max){
max=sum;
flag=l;
}
sum=0;
}
printf("%d",flag);
return 0;
}
0.0分
0 人评分
C语言训练-计算一个整数N的阶乘 (C语言代码)浏览:986 |
剪刀石头布 (C语言代码)不知道怎么直接在scanf中用枚举变量浏览:1436 |
printf基础练习2 (C语言代码)浏览:955 |
求组合数 (C语言代码)浏览:1207 |
WU-蓝桥杯算法提高VIP-勾股数 (C++代码)浏览:1685 |
【计算两点间的距离】 (C语言代码)浏览:1522 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:821 |
1157题解浏览:769 |
图形输出 (C语言代码)浏览:1422 |
C二级辅导-温度转换 (C语言代码)浏览:802 |