예기치 않은 결과가 발생할 때에서 발견 된 퍼즐 A14를 Java (Eclipse 포함)를 사용하여 해결하려고했습니다.중첩 된 for 루프가 예기치 않은 결과를 나타냅니다.
퍼즐을 사용하려면 각 줄 k에 100 * k에서 100 * k + 99까지의 범위에 23의 배수가되는 모든 정수를 인쇄해야합니다 (k는 일부 제한이 있습니다. 예 : 11). 나는 결국 문제를 해결하는 데 사용
중첩 된 For 루프했다 : 내가 만약에 모듈 사업부를 사용하기 전에 J를 + *
for(i = 0; i <= k; i++){
for(j = 0; j <= 99; j++){
if((100 * i + j) % 23 == 0)
System.out.print(100 * i + j + " ");
}
System.out.println();
}
하지만, 내 첫 번째 시도에서, 나는 100 괄호를 넣어하지 않았다 성명서는 "0 23 46 69 92"(올바른 해결책과 비교하여 11 줄의 결과를 얻었습니다 : "0 23 46 69 92"첫 줄에 "115 138 161 184 "두 번째 줄 등).
나는이 사실을 알기 위해 노력했다. 괄호가 없어도 If 문이 100 * i와 결합되기 전에 If 문이 j에 모듈 분할을 사용한다고 가정합니다. 그러나 그런 경우라면, 단 한 줄 대신에 "0 23 46 69 92"의 11 줄 (k = 11 인 경우)을 생산하지 않을까요?
감사합니다. 그건 의미가 있습니다. 첫 번째 반복에서 i = 0으로 설정하여 관계 연산자의 왼쪽 나머지 부분에 100 * 0을 더합니다. j % 23 == 0이면 조건은 계속 true입니다. 두 번째 반복에서 i = 1이되어 100 * 1이 추가됩니다. 첫 번째 반복 후 조건은 항상 거짓입니다. – ricky085