public class Soo{
public static void main(String[] args) {
int[] a = new int[10];
int sum=100;
for(int i=0; i<a.length; i++){
a[i] = i+1;
}
for(int i=0; i<a.length; i++){
if(i%3==1){
sum -= a[i];
}
}
System.out.print(sum);
}
}
정답은 85 라고 하는데 마지막 연산이 어떻게 되는지 모르겠네요
나머지수 라면 (1,4,7, 10) 일텐데, 이런 짧은 코드도 이해를 못하고 있네요//
배열 초기화
길이가 10인 정수형 배열
a를 생성합니다. 초기 값은 모두0입니다.변수
sum을 100으로 초기화합니다. 이 변수는 이후 계산의 결과를 저장할 역할을 합니다.반복문 수행
배열
a의 각 인덱스에i+1의 값을 대입합니다. 즉,a[0]에는 1,a[1]에는 2, ...,a[9]에는 10이 들어갑니다.최종적으로 배열
a의 값은[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]이 됩니다.인덱스 기준으로 값을 빼기
배열
a의 각 요소를 확인하면서 조건에 따라sum에서 해당 값을 뺍니다.조건
i%3==1은 배열의 인덱스가 3으로 나눈 나머지가 1인 경우에만 참이 됩니다. 즉, 인덱스 1, 4, 7에 해당하는 배열 요소만sum에서 빼는 것이죠.a[1] = 2a[4] = 5a[7] = 8따라서
sum에서 빼는 값은2 + 5 + 8 = 15입니다.처음에
sum은 100이었고, 15를 빼면 최종 결과는100 - 15 = 85가 됩니다.따라서 출력은
85입니다.답글
김태윤
2024.10.17값이 아닌 배열주소를 연산한게 잘못이였군요, 빠른답변 감사드려요