티스토리 뷰
14번 팩토리얼 문제를 풀며 추가적으로 작성했던 피보나치 함수의 코드이다.
[1].피보나치 수열의 n항까지의 합
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp3
{
class Program
{
static void Main(string[] args)
{
Console.Write("정수 하나를 입력하세요: ");
int n = int.Parse(Console.ReadLine());
Console.WriteLine("결과: {0}", Fibo(n));
}
private static int Fibo(int n)
{
if (n == 1 || n == 2)
return 1;
return Fibo(n - 1) + Fibo(n - 2);
}
}
}
피보나치 수열을 계산하는 Fibo재귀함수를 설정하여 n항의 값을 구하는 코드이다.

private static int Fibo(int n)
{
if (n == 1 || n == 2)
return 1;
return Fibo(n - 1) + Fibo(n - 2);
}
Fibo함수를 도식화하면 위와같이 그려진다.
n을 계속 (-)하여 1이나 2을 만들어 전부 리턴하는 방식이다.
추정 시간복잡도는 N^2 정도로 볼 수 있다.

순서는 1,1,2,3,5,8,13,21,34,55 이다.
[2].피보나치 수열의 n항까지의 수들 전부 출력하기
n항까지의 수를 for문을 사용하여 전부 출력하는 코드이다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp4
{
class Program
{
static void Main(string[] args)
{
Console.Write("정수 하나를 입력하세요: ");
int n = int.Parse(Console.ReadLine());
Console.WriteLine("1항부터 {0}항까지: {1}", n, Fibo(n));
for (int i = 1; i <= n; i++)
Console.Write(Fibo(i) + " ");
Console.WriteLine(" ");
}
private static int Fibo(int n)
{
if (n == 1 || n == 2)
return 1;
else
return Fibo(n - 1) + Fibo(n - 2);
}
}
}
N이 입력되면 N항의 Fibo값을 출력해준 뒤
다음줄에 N항까지의 값들을 빈칸으로 구분하여 출력해준다.
for (int i = 1; i <= n; i++)
Console.Write(Fibo(i) + " ");
for문을 돌릴 때 마다 Fibo함수를 호출하여 계산한 뒤 출력해주었다.

---------결과---------
'VS-02분반수업' 카테고리의 다른 글
VSP02(22-03-30) (0) | 2022.04.06 |
---|---|
VSP02(2022-03-23) (0) | 2022.03.31 |
VSP02(2022-03-18) (0) | 2022.03.22 |
VSP02(2022-03-04) (0) | 2022.03.06 |
VSP02(2022-03-02) (0) | 2022.03.02 |