double sum_skip7 (double array[], int n)
//n: size of the array. Assume n is divisible by 7
{
double sum = 0;
for(int i=0; i< n; i=i+7)
sum = sum + array[i];
return sum;
}
我理解如果for循环要将i
递增1,则运行for循环语句所需的次数为n+1
(i
= 0, 1,2,... n
)。但是,由于i
增加7
,它仍然是n+1
次?或者是(n-7)+1
次?第二个答案似乎更有意义,但我不愿意赌它。
答案 0 :(得分:2)
不,它是n / 7,因为我每次增加7。
答案 1 :(得分:0)
因为我每次上升7,我们可以看到循环将运行n / 7次。由于运行时我们忽略了常量,因此它具有O(n)的运行时间。