재귀함수로 만드는 합

2021. 6. 8. 14:35·Algorithm/Memo
#include <iostream>

using namespace std;

int sum(int i);

int main()
{
	cout << sum(10);
}

int sum(int i)
{
	if (i == 1)
	{
		return 1;
	}

	return i + sum(i - 1);
}

 

  1. 수가 하나씩 적어지면서 sum(i-1)를 들어간다.
  2. 1이 됐을때 1을 반환해주면서 재귀를 시작한다.

1에 도달하여 재귀하기 시작하는 순서

1 -> 2 + 1 -> 3 + 3 -> 4 + 6 -> 5 + 10 -> 6 + 15 .....

결국

10 + 45를 만나면서 최종 수를 반환한다.

 

출력

55

 

 

팩토리얼을 구하는 재귀함수
int factorial(int x)
{
    if (x == 0)
    {
        return 1;
    }

    return x * factorial(x - 1);
}

return쪽의 factorial함수내로 진입한다. 0에 도달하면 하나씩 리턴하며 돌아온다.

0 : 1

1 : 1 * 1

2 : 2 * 1

3 : 3 * 2

4 : 4 * 3 ........

이런식으로 돌아오게된다.

저작자표시 (새창열림)

'Algorithm > Memo' 카테고리의 다른 글

다익스트라 알고리즘  (0) 2021.04.19
너비 우선 탐색 BFS  (0) 2021.03.25
깊이 우선 탐색_DFS  (0) 2021.03.25
힙  (0) 2021.02.15
'Algorithm/Memo' 카테고리의 다른 글
  • 다익스트라 알고리즘
  • 너비 우선 탐색 BFS
  • 깊이 우선 탐색_DFS
  • 힙
chanheess
chanheess
'왜' 그렇게 했는가?에 대한 생각으로 공부 및 작업의 저장관리
  • chanheess
    왜 그렇게 생각했는가?
    chanheess
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Backend Programming
      • Game Programming
        • Unreal
        • DirectX
      • C++
        • Memo
        • Basic
        • Effective Modern
      • Algorithm
        • Memo
        • Baekjoon
        • Programmers
        • HackerRank, LeetCode
      • Data Structure
      • Design Pattern
      • Etc
        • Memo
        • Daily Log
        • Book
  • 최근 글

  • 최근 댓글

  • 태그

    dp
    SpringSecurity
    위클리 챌린지
    c++ 기초 플러스
    백준
    dfs
    티스토리챌린지
    알고리즘
    프로그래머스
    JWT
    spring
    JPA
    Java
    오블완
  • hELLO· Designed By정상우.v4.10.0
chanheess
재귀함수로 만드는 합
상단으로

티스토리툴바