현재 학교에서 함수에 대해서 배우고 있습니다!
피보나치와 관련된 예제인데요,
Enter a number: 1 //1입력 후 엔터
fibonacci number is 1 //피보나치 수열의 첫번째 값을 구한 후 출력
Enter a number: 2 // 2입력 후 엔터
fibonacci number is 1 // 피보나치 수열의 두번째 값을 구한 후 출력
Enter a number: -1 // -1입력 후 엔터
//프로그램 종료
그니까 숫자 n을 입력하면 피보나치 수열의 n번째 값이 나오는 프로그램을 작성해야 합니다 (단 -1 입력시 프로그램 종료)
#include <stdio.h>
int get_fibonacci_number(int n);
int get_number();
int main(void)
{
int n;
int fibo;
n=get_number();
while(n!=-1)
{
fibo=get_fibonacci_number(n);
printf("fibonacci number is %d\n", fibo);
n=get_number();
}
return 0;
}
여기서 저는 위의 메인함수를 수정하지 않고 get_fibonacci_number과 get_number 함수를 정의하여 위의 결과값을 뽑아내야 하는데요,
제가 작성한 두 함수의 정의는 이러합니다
int get_number() //첫번째 함수의 정의
{
int num;
printf("Enter a number: ");
scanf("%d",&num);
return num;
}
int get_fibonacci_number(int n) //두번째 함수의 정의
{
int fn,fn_1,fn_2;
int i=1;
fn_1 = 1;
fn_2 = 1;
while(i=n)
{
fn = fn_1 + fn_2;
fn_2 = fn_1;
fn_1 = fn;
i++;
}
return fn;
}
그런데 이렇게 하면 피보나치 넘버가 출력이 안되더라구요ㅠ 어떤 곳이 문제인지 알려주시면 감사하겠습니다 ㅠ