Advertisement
daskalot

Untitled

Apr 1st, 2019
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.86 KB | None | 0 0
  1.  
  2. function fact {
  3. local n="$1"
  4. if [ $n -eq 1 ]; then
  5. echo $n
  6. else
  7. nn=$( fact $((n-1)) )
  8. echo $(( n*nn ))
  9. fi
  10. }
  11.  
  12. function fib {
  13. local n="$1"
  14. if[ $n -le 2]; then
  15. echo $n
  16. else
  17. p1=$( fib $((n-1)) )
  18. p2=$( fib $((n-2)) )
  19. echo $((p1+p2))
  20. fi
  21. }
  22.  
  23. function faciter {
  24. local p=1
  25. local cnt=1
  26. for ((i=1;i<=$1;i++))
  27. do
  28. p=$(($p*$i));
  29. done
  30. echo $p
  31. }
  32.  
  33. function fibiter {
  34. local f=0
  35. local s=1
  36. for ((i=0;i<=$1;i++))
  37. do
  38. local tmp=$s
  39. s=$(($f+$s))
  40. f=$tmp
  41. done
  42. echo $f
  43. }
  44.  
  45. case "$1" in (fact)
  46. fact $2
  47. ;;
  48. (faciter)
  49. faciter $2
  50. ;;
  51. (fibiter)
  52. fibiter $2
  53. ;;
  54. (fib)
  55. fib $2
  56. ;;
  57. (--help)
  58. echo "Shell script that computes N-th fibonacii number and factoriel of N.
  59. Usage: fibiter / fib for recursive/ iterative calculation of N-th fibonacii number.
  60. fact/faciter for calculating factoriel of N!"
  61. ;;
  62. esac
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement