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