#include <stdio.h>
int main() {
for(int i=1; i<=46; i++) {
for(int j=i+2; j<=48; j++) {
// for(int num1=i; num1<=46; num1++)
// 為什麼這兩行寫了就會出來很多重復的呢?
// for(int num2=j; num2<=48; num2++)
int change=0;
change = i*(i+1) - i - i - 1;
change += j*(j+1) - j - j - 1;
if(change == (2015-1225)) {
printf("%d %d\n", i, j);
}
}
}
}
註釋掉的兩層循環(num1、num2)若打開,會導致大量重複輸出。原因是:當外層循環找到滿足條件的 (i, j) 對(如 [10,27] 和 [16,24])時,內層兩個循環會遍歷所有 num1 ≥ i 且 num2 ≥ j 的組合,每次都滿足 if 條件,從而重複打印。
總共會輸出 1589 行重複結果。
若需統計輸出次數,可引入計數器變量驗證。正確邏輯應僅在最外層循環判斷條件並輸出,避免多餘嵌套循環。