[코테3_5]연속된 자연수의 합

byeol·2022년 12월 2일
0

코딩테스트

목록 보기
22/42

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문이 아니라

  • 항이 2개인 경우부터 시작해서 항의 개수를 늘려나가는 방식
  • 초항이 1보다 작아지는 경우 그만두는 방식
    이 2가지를 함께 진행하여 연속자연수의 합이 되도록 계산하였다.

등차수열을 이용

그림 출처 : https://blog.naver.com/pso164/222813745817?isInf=true

✔ 강의 듣고

profile
꾸준하게 Ready, Set, Go!

0개의 댓글