오늘은 이미 한개를 업로드했기 때문에 안할라 했는데, 한번에 성공한게 너무 뿌듯해서 이어서 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;
    
}
보이는것처럼 정상적으로 실행된다!
