以下是用遞迴的方式寫的
/*
* File Name: Fibonacci.c
* Author: MH
* Since 2011/05/16
* Toolkit: Dev C++
*/
# include <stdlib.h>
# include <stdio.h>
int fib(int n){
if(n==0)
return 0;
if(n==1)
return 1;
return (fib(n-1)+fib(n-2));
}
int main(){
int input, i;
while(1){
printf("The 0th number is 0, and the first number is 1\n");
printf("ex : 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233 ...\n\n");
printf("Please input an integer to show the last value of Fibonacci Sequence :\n");
scanf("%d", &input);
printf("\n");
if(input<0)
printf("\nInput cannot less than 0\n\n");
else{
for(i=0; i<=input; i++)
printf("%d ", fib(i));
}
printf("\n\n");
system("PAUSE");
system("CLS");
}
return 0;
}
不過當然也有用迴圈的方法寫的
/*
* File Name: Fibonacci.c
* Author: MH
* Since 2011/05/16
* Toolkit: Dev C++
*/
# include <stdlib.h>
# include <stdio.h>
int main(){
int n, i, n_2=0, n_1=1, fib;
while(1){
printf("The 0th number is 0, and the first number is 1\n");
printf("ex : 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233 ...\n\n");
printf("Please input an integer to show the last value of Fibonacci Sequence :\n");
scanf("%d", &n);
printf("\n");
if (n == 0)
fib = n_2;
else if (n == 1)
fib = n_1;
else{
for (i=2; i<=n; i++) {
fib = n_2 + n_1;
n_2 = n_1;
n_1 = fib;
}
n_2 = 0;
n_1 = 1;
}
printf("The Fibonacci Sequence is %d\n\n", fib);
system("PAUSE");
system("CLS");
}
return 0;
}
感謝!!
回覆刪除