如果你的判断语句只能判断不满足条件的循环控制变量,那么当判断语句触发时它已经大了1,而c++for循环中会再执行一次自加,所以一共大了2。
int i=1;
for(int sum=k; sum>=k; i++)//在sum大于k时,求sum的i比需要的i大了1,而在循环体结束之后i++,所以一共大了2
{
sum=0;
for(int j=0; j<n; j++)
{
sum+=((q[j][0]/i)*(q[j][1]/i));
}
}
i-=2;
cout<<i<<endl;