for(int i=1;i<=n;i=i+(int)Math.pow(2, k-1)) { long sum=0; //每一层可能不满,一定要加上j<=n,否则数组越界 for(int j=i;j<i+(int)Math.pow(2, k)&&j<=n;j++) { sum+=a[j]; } 什么意思
#include <stdio.h> #include <math.h> int main() { int n,i,j,k,t; scanf("%d",&n); int a[10000],s,s1; for (i=0;i<n;i++) { scanf("%d",&a[i]); } for (i=n;i<10000;i++) { a[i]=0; } s=a[0]; k=0; t=1; for (i=0;i<log2(n+1);i++) { s1=0; for (j=0;j<pow(2,i);j++) { s1=s1+a[k]; k++; } if (s1>s) { s=s1; t=i+1; } } printf("%d",t); } 求教大佬我错在哪里
母牛的故事 (C语言代码)浏览:992 |
C语言程序设计教程(第三版)课后习题6.6 (C语言代码)浏览:626 |
C语言程序设计教程(第三版)课后习题6.3 (C++代码)浏览:1067 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:628 |
printf基础练习2 (C语言代码)浏览:653 |
幸运数 (C++代码)浏览:1309 |
DNA (C语言代码)浏览:798 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:729 |
第三届阿里中间件性能挑战赛-总决赛亚军比赛攻略浏览:1170 |
简单的a+b (C语言代码)浏览:444 |