fork download
  1. #include <stdio.h>
  2. int fib1(int n) {
  3. if (n == 0) return 0;
  4. if (n == 1) return 1;
  5.  
  6. int a = 0, b = 1, fib;
  7. for (int i = 2; i <= n; i++) {
  8. fib = a + b;
  9. a = b;
  10. b = fib;
  11. }
  12. return fib;
  13. }
  14. int fib2(int n) {
  15. if (n == 0) return 0;
  16. int fib[n + 1];
  17. fib[0] = 0;
  18. fib[1] = 1;
  19.  
  20. for (int i = 2; i <= n; i++) {
  21. fib[i] = fib[i - 1] + fib[i - 2];
  22. }
  23. return fib[n];
  24. }
  25.  
  26. int fib3(int n) {
  27. if (n == 0) return 0;
  28. if (n == 1) return 1;
  29. return fib3(n - 1) + fib3(n - 2);
  30. }
  31.  
  32. int main(void) {
  33. int n;
  34. scanf("%d", &n);
  35.  
  36. printf("1: %d\n", fib1(n));
  37. printf("2: %d\n", fib2(n));
  38. printf("3: %d\n", fib3(n));
  39.  
  40. return 0;
  41. }
Success #stdin #stdout 2.08s 5308KB
stdin
43
stdout
1: 433494437
2: 433494437
3: 433494437