티스토리 뷰

오늘은 숫자 하나(n)을 입력받아서 1부터 n까지의 합을 구하는 C/C++ 소스를 알아보도록 하겠습니다. 일반적으로 for문이나 while문을 사용해서 합을 구하기도 하지만 오늘은 재귀라는 방법을 이용해서 합을 구해보도록 하겠습니다.


재귀(recursion)는 무엇일까요? 재귀는 자기 자신을 호출하는 것을 말합니다. 예제 소스를 보시면 아시겠지만 재귀는 자기 자신을 여러번 호출해서 값을 구하게 됩니다.


실제로 소스를 보도록 하겠습니다.





C언어로 1부터 n까지 합을 구하는 예제소스(재귀)



아래의 소스는 C언어로 1부터 n까지 합을 구하는 소스입니다.



#include<stdio.h>

int sum(int n); 

int main() 
{ 
   int number; 
   printf("숫자를 입력하세요 : " );
   scanf("%d", &number);
   printf("1부터 %d까지의 합 : %d\n", number, sum(number));
   
   return 0; 
} 

// 합을 구하는 재귀함수
int sum(int n) 
{ 
	if(n<=0) 
		return 0; 
	return n + sum(n-1); 
} 


위 소스를 실행하면 아래와 같이 나옵니다.








C++로 1부터 n까지의 합을 구하는 예제소스(재귀)



아래의 소스는 C++로 1부터 n까지의 합을 구하는 소스입니다.



#include<iostream> 
using namespace std; 
int sum(int n); 
int main() 
{ 
   int number; 
   cout << "n = "; cin >> number; 
   cout << "sum = " << sum(number) << endl; 
   return 0; 
} 

int sum(int n) 
{ 
   if(n<=0) 
       return 0; 
   return n + sum(n-1); 
}



위 소스를 실행하면 아래와 같이 나옵니다.




댓글