이코노딩

Dart: 피보나치 수열(재귀함수 호출) 본문

언어/Dart & Flutter

Dart: 피보나치 수열(재귀함수 호출)

떼이로 2022. 3. 26. 03:39

두번째 문제는 Dart내에 재귀함수에 대하여 알아보는 문제였다.

Q. 피보나치 수열을 재귀함수로 코딩한 후 입력 받은 수가 재귀함수를 몇 번 호출하는지 출력하는 프로그램을 짜시오.

 

기본적으로 피보나치 수열 재귀함수 알고리즘은 너무나 유명하기 때문에 쉽게 구현 할 수 있었다.

#1 Code

import 'dart:io';

var cnt=0;

void main() {
  print('수를 입력하시오.');
  int? n = int.parse(stdin.readLineSync()!);

  print('${fib(n)} ${cnt}회 호출');
}

///basic fib function
int fib(int n) {
  cnt++;
  if ( n== 1 || n==2) return 1;
  else return fib(n-1) + fib(n-2);
}

간단하게 cnt를 전역변수로 두어 함수를 호출 할 때 마다 올라가게 두었다.

 

#실행결과

한 번만에 통과, 피보나치 수열 자체가 유명한 것과 지금까지 해왔던 언어와 비슷한 감이 있어 쉽게 해결 할 수 있었다.