15를 넣었을 때 연속된 자연수의 합이 될 수 있는 경우의 수가 3이다.
따라서
input= 자연수
output=연속된 자연수의 합을 만드는 경우의 수
✔ 내답-> 정답
import java.util.*;
public class P3_5{
public static int solution(int n){
int cnt=0, a=0;
int k=2;
do{
if((2*n+k-k*k)%(2*k)==0) cnt++;
k++;
a=(2*n+k-k*k)/(2*k);
} while(a>=1);
return cnt;
}
public static void main(String[] args){
Scanner kb = new Scanner(System.in);
int n = kb.nextInt();
System.out.println(solution(n));
}
}
for문이 아니라
등차수열을 이용
그림 출처 : https://blog.naver.com/pso164/222813745817?isInf=true
✔ 강의 듣고