https://programmers.co.kr/learn/courses/30/lessons/12928
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
class Solution {
public int solution(int n) { ---(1)
int answer = 0; ---(2)
for(int i =1; i<=n; i++){ ---(3)
if(n%i==0){
answer += i;
System.out.println(answer);
}
}
return answer;
}
}
(1) 정수 n을 인자로 받는다.
(2) answer 변수를 0으로 초기화한다.
(3) for문을 돌리기
정수가 짝수나 홀수일 경우를 대비해 for문 안에서 if - elseif로 나눠 값을 처리하려고 하였다.
그런데, 그렇게 하면 for문을 돌면서 n%i를 했을 때 0으로 나오던, 1로 나오던 다 더해서 값이 예상했던 값과 다른 값들이 나오게 되었다.
class Solution {
public int solution(int n) {
int answer = 0;
for(int i =0; i<=n; i++){
if(n%i==0){
answer += i;
}else if(n%i==1){
answer += i;
}
}
return answer;
}
}
그래서 else if로 지웠더니 값이 잘 나왔다.