ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 연속 자연수 합
    algorism 2020. 1. 19. 15:58

    연속된 자연수의 합


    입력으로 양의 정수 N이 입력되면 2개 이상의 연속된 자연수의 합으로 정수 N을 표현하는 방 법의 가짓수를 출력하는 프로그램을 작성하세요. 만약 N=15이면 7+8=15 4+5+6=15 1+2+3+4+5=15 와 같이 총 3가지의 경우가 존재한다.


    입력설명 첫 번째 줄에 양의 정수 N(7<=N<1000)이 주어진다.


    출력설명 첫줄부터 각각의 경우의 수를 출력한다. 맨 마지막 줄에 총 개수를 출력한다.


    입력예제 1                                  
    15


    출력예제 1
    7 + 8 = 15 

    4 + 5 + 6 = 15 

    1 + 2 + 3 + 4 + 5 = 15 

    3

     

    #include<iostream>
    #include<vector>
    #include<algorithm>
    using namespace std;
    int main() {
    	
    	int i = 0;
    	int N;
    	int count = 0;
    	int result = 0;
    	int allcount = 0;
    	cin >> N;
    
    
    	for (i = N-1; i >= 1; i--)//높은 숫자부터 정렬이 되기떄문에 14부터 내림차순으로 반복
    	{
    		count = 0;
    		result = 0;
    		int arr[16] = {0};
    		for (int j = i; j >=1 ; j--)
    		{
    			arr[count] = j;
    			count++;
    			result = result + j;
    			if (result == 15)
    			{
    				sort(arr, arr + count);//sort로 배열 오름차순으로 정렬
    				for (int k = 0; k < count; k++)
    				{
    					
    					if (k == count - 1)
    					{
    						cout << arr[k] << "=" << "15";
    					}
    					else
    					cout << arr[k] << "+";
    				}
    				cout << endl;
    				allcount++;
    				break;
    				
    			}
    		}
    		
    	}
    	cout << allcount;
    }

    'algorism' 카테고리의 다른 글

    교집합  (0) 2020.01.18
    탄화수소 계산  (0) 2020.01.15
    병합정렬 알고리즘  (0) 2020.01.15
    3의 갯수 구하기  (0) 2020.01.14
    카드게임  (0) 2020.01.14
Designed by Tistory.