簡單思路
先算前缀和(記得大小為n+1)
把前缀和算出來之後
k=1 //k要在迴圈外,因為每次的起始點不同只有第一次是1
for(int i=0; i<m; i++)
{
添加3個變數tmp,count,minus;
tmp為用來判斷是否大於q[i]
count為加過一輪後的值也就是persum的最後一個元素
minus為扣掉起始點以前的前缀和
while(tmp<q[i])
{
tmp=count*persum[n];
tmp+=persum[k]-minus;
if(k==n)
{
count++; //因為加過一輪了所以count++
k=1;
}
else
k++;
}
}
最終輸出時答案會是k-1