홀짝에 따라 다른 값 반환하기
날짜 | 2023-10-26 |
사용 언어 | Java |
문제 유형 | 반복문, IF문, 수학 |
정답률 | 89% |
문제 URL | https://school.programmers.co.kr/learn/courses/30/lessons/181935 |
문제 #
문제 설명 #
양의 정수 n
이 매개변수로 주어질 때, n
이 홀수라면 n
이하의 홀수인 모든 양의 정수의 합을 return 하고 n
이 짝수라면 n
이하의 짝수인 모든 양의 정수의 제곱의 합을 return 하는 solution 함수를 작성해 주세요.
제한사항 #
- 1 ≤
n
≤ 100
나의 풀이 #
class Solution {
public int solution(int n) {
int answer = 0;
if(n%2!=0) {
for(int i = 1; i<=n; i=i+2) {
answer += i;
}
}
else {
for(int i = 2; i<=n; i=i+2) {
answer += i*i;
}
}
return answer;
}
}
다른 사람의 풀이 #
class Solution {
public int solution(int n) {
if (n % 2 == 1) {
return (n + 1) * (n + 1) / 2 / 2;
} else {
return 4 * n/2 * (n/2 + 1) * (2 * n/2 + 1) / 6;
}
}
}
관련개념 학습 #
$$\frac{n+1}{2} \times \frac{1}{2} \times (1+n)$$
$$n\times(n+2)\times(2n+2)\over12$$