Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 수 있습니다.
자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성해주세요.
입출력 예#1
문제의 예시와 같습니다.
방정식을 활용하여 풀이
인수 k는 연속된 숫자를 의미
인수 n은 임의의 숫자
x는 연속된 숫자 중 가장 작은 수를 의미
class Solution {
public int solution(int n) {
int answer = 0;
// k는 도는 연속수의 갯수
for (int k = 1; k <= n; k++) {
for (int x = 1; x <= n; x++) {
int sum = 0;
for (int i = 1; i < x; i++) {
sum += i;
}
int j = (k * x) + sum;
if (j == n) {
answer++;
}
}
}
return answer;
}
}
class Solution {
public int solution(int n) {
int answer = 0;
//k는 몇연속인지의 대한 갯수
for (int k = 1; k <= n; k++) {
for (int x = 1; x <= n; x++) {
int j = (k * x) + (x * (x - 1)) / 2;
if (j > n) {
break;
}
if (j == n) {
answer++;
}
}
}
return answer;
}
}