군대에서_코딩하기_알고리즘_16

신태원·2021년 10월 3일
0

군대에서_코딩하기

목록 보기
17/30
post-thumbnail

오늘은 이미 한개를 업로드했기 때문에 안할라 했는데, 한번에 성공한게 너무 뿌듯해서 이어서 2개째 올린다.

이번 문제는 연속된 자연수의 합을 구하는 문제인데, 만약 N으로 15가 주어지면
7+8=15
4+5+6=15
1+2+3+4+5=15
같이 연속된 자연수의 합이 N인 경우의 수를 다 구하는 것이다.
N 범위가 1000이내라서 정통 for문으로 돌려도 무리가 없겠다 싶어서 변수들을 몇개 설정해서 일일히 다 확인해주는 식으로 코드를 짰다.

#include<iostream>
#include<algorithm>

using namespace std;



int main(){

 //반을 넘어가면 스톱
 
 int N, sum, j, total=0;
 int cnt=1;
 
 cin>>N;
 
 while(cnt<=N/2){
    sum=0;
    for(int i=cnt; i<N/2+2; i++){
        sum +=i;
        if(sum==N){
            for(j=cnt; j<i+1; j++){
                if(j == i){
                    cout<<j<<" = ";
                    cout<<N<<endl;
                    total++;
                }
                else{
                    cout<<j<<" + ";    
                }
                
            }
            cnt++;
            break;
        }
        else if(sum>N){
            cnt++;
            break;
        }
    }
 }
 cout<<total;
    
}

보이는것처럼 정상적으로 실행된다!

profile
일단 배우는거만 정리해보자 차근차근,,

0개의 댓글