斐波那契數列定義:
代碼實現的時候有兩種方法,非遞歸實現和遞歸實現
非遞歸實現:
聲明三個整數變量 a, b, c (由於當 n 較大時 F(n) 會很大,所以 a, b, c 在聲明的時候一步到位直接 unsigned long long)
把 a + b 賦給 c , 之後再把 b 賦給 a , c 賦給 b ;
同時把 n 減一
執行上述步驟直到 n 減到 1 爲止
//C語言非遞歸實現斐波那契數列
#include <stdio.h>
int main(int argc, char *argv[])
{
int n;
scanf("%d", &n);
unsigned long long a, b, c;
a = 1;
b = 1;
while (n-- > 2) {
c = a + b;
a = b;
b = c;
}
printf("%llu\n", c);
return 0;
}
遞歸實現:
//C語言遞歸實現斐波那契數列
#include <stdio.h>
unsigned long long fbnq(int n);
int main(int argc, char *argv[])
{
int n;
scanf("%d", &n);
printf("%llu\n", fbnq(n));
return 0;
}
unsigned long long fbnq(int n)
{
if (n <= 2)
return 1; /* F(1) = F(2) = 1 */
else
return (fbnq(n - 1) + fbnq(n - 2));
}
...以上