본문 바로가기

재귀함수3

피보나치 수열 함수 코딩, 알고리즘, Fibonacci Algorithm 코드 앞서배운 팩토리얼 코드에서 재귀함수에 대해서 알아보았는데요 자기 자신을 호출하는 재귀 호출은 피보나치 수열의 알고리즘에서도 사용됩니다. 피보나치 수열은 앞의 두항을 합친 값이 다음 항이 되는 수열 입니다. 처음에 1부터 시작한다고 하면 1, 1, 2, 3, 5, 8, 13, 21.... 이런식으로 나타낼 수 있습니다. 한 7, 8번째 항까지는 손으로도 쉽게 구할 수 있을텐데 피보나치수열의 30번째 항을 구하라고 한다면 ? 손으로는 약간 무리가 올거같고 그렇다고 못할것도 없어서 노가다를 뛰어서 구했는데 계산 실수라도 해서 잘못구하면 마음이 많이 쓰라릴거같습니다. 그래서 피보나치수열을 일반항 공식을 사용해서 구하자니 이거 우리가 중,고등학교때 배운 그런 쉬운 공식이 아닌데요 피보나치 수열의 일반항은 입니다... 2020. 2. 25.
팩토리얼 함수 코딩, 알고리즘 ,Factorial Algorithm (재귀함수) 앞에서는 반복함수로 팩토리얼 알고리즘을 구현하였는데 이번에는 재귀함수를 사용하여 팩토리얼을 구해보도록 하겠습니다. 그림이 이해가 되셨으면 좋겠네요 재귀함수, 재귀호출 이라고 하며 여기서 재귀는 자기 자신을 포함하고 다시 자기 자신을 사용한다 이런 느낌을 재귀적이라고 합니다. 무슨말인지 모르시겠다면 그게 맞는겁니다. 나는 나고 나라는건 나야 재귀적으로 자신을 말할때 저렇게 말할 수 있게됩니다. 무슨말인지 모르시겠다면 그게 맞는겁니다. 즉 자기 자신을 포함하는 것이라고 생각하시면 편할것 같습니다. 팩토리얼을 설명하는데 왜 재귀함수를 이야기하는지 모르시겠다구요? 여기서 팩토리얼의 공식을 조금 더 자세히 살펴보겠습니다. 이해를 돕기위해 n > 5 라고 가정할시 n! = n*(n-1)*(n-2)*(n-3)...... 2020. 2. 24.
팩토리얼 함수 코딩, 알고리즘 , Factorial Algorithm (반복함수) 팩토리얼은 n부터 1까지의 정수를 곱하는 단순한 연산이라고 할 수 있는데요 예시로 5!는 5 * 4 * 3 * 2 * 1 = 120 입니다 반복적인 곱의 연산 형태이며 알고리즘 코드로 구현 해보겠습니다. 자바로 구현 했으며, 물론 다른 언어도 방식은 똑같습니다. 반복함수를 사용하여 팩토리얼 코드 만들기 n! = n*(n-1)*(n-2).....(n-(n-1)) 에서 마지막에 곱해진는 정수가 1이 될때까지 곱셈을 합니다. 반복문이므로 for문과 while문중 하나를 선택해서 구현하는데 정해진 조건이 있으므로 for문을 사용하여 구현을 합니다. public static long factorial(int n) { // long형으로 반환 합니다. 길이가 짧으면 int형도 상관없습니다. int i = 0; //.. 2020. 2. 24.