fork(1) download
  1. #include <stdio.h>
  2.  
  3. int fib1(int n)
  4. {
  5. int i,fn,fa=1,fb=0;
  6. if(n==0)
  7. return 0;
  8. else if(n==1)
  9. return 1;
  10. else
  11. {
  12. for(i=2;i<=n;i++)
  13. {
  14. fn=fa+fb;
  15. fb=fa;
  16. fa=fn;
  17. }
  18. return fn;
  19. }
  20. }
  21. int fib2(int n)
  22. {
  23. int f[n+1],i;
  24. f[0]=0;
  25. f[1]=1;
  26. for(i=2;i<=n;i++)
  27. {
  28. f[i]=f[i-1]+f[i-2];
  29. }
  30. return f[n];
  31. }
  32. int fib3(int n)
  33. {
  34. int fn;
  35. if(n==0)
  36. return 0;
  37. else if(n==1)
  38. return 1;
  39. else
  40. {
  41. fn=fib3(n-1)+fib3(n-2);
  42. return fn;
  43. }
  44. }
  45.  
  46.  
  47. int main(void) {
  48.  
  49. int n;
  50. scanf("%d",&n);
  51.  
  52. printf("1:%d\n",fib1(n));
  53. printf("2:%d\n",fib2(n));
  54. printf("3:%d\n",fib3(n));
  55. return 0;
  56. }
Success #stdin #stdout 0s 5304KB
stdin
3
stdout
1:2
2:2
3:2