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] = 2
a[4] = 5
a[7] = 8
따라서
sum
에서 빼는 값은2 + 5 + 8 = 15
입니다.처음에
sum
은 100이었고, 15를 빼면 최종 결과는100 - 15 = 85
가 됩니다.따라서 출력은
85
입니다.답글
김태윤
2024.10.17값이 아닌 배열주소를 연산한게 잘못이였군요, 빠른답변 감사드려요