Sponsored Content
Top Forums Shell Programming and Scripting Factorial of any number using functions Post 302512266 by mirni on Saturday 9th of April 2011 04:31:28 AM
Old 04-09-2011
I don't think so...
Code:
miro@miro-ntb:tmp$ cat fact.sh
#!/bin/sh

INPUT=$1
COUNT=${INPUT}

while [ ${COUNT} -ne "1" ]
do
COUNT=`expr ${COUNT} - 1`
INPUT=`expr ${INPUT} \* ${COUNT}`
done

echo ${INPUT}miro@miro-ntb:tmp$ ./fact.sh 30
expr: *: Numerical result out of range
expr: syntax error
expr: syntax error
expr: syntax error
...

How about letting bc do all the dirty work?
Code:
miro@miro-ntb:tmp$ cat fact.sh
#!/bin/bash
function fac {
  N=$1
  fact=1
  while [ $N -gt 1 ] ; do 
    fact="${fact}*${N}"
    ((N--))
  done
  echo $fact | bc
}

fac $1

miro@miro-ntb:tmp$ ./fact.sh 6
720
miro@miro-ntb:tmp$ ./fact.sh 150
57133839564458545904789328652610540031895535786011264182548375833179\
82912484539839312657448867531114537710787874685420416266625019868450\
44663559491959220665749425920957357789293253572904449624724054167907\
22118445437122269675520000000000000000000000000000000000000

Smilie
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Regarding functions

Hi, I have a function or script like this. show() { echo "Hi" } | tee -a log show This creates a logfile and prints Hi in it. Now when I try to do the same for sql like this: show() { sqlplus -s scott/tiger<<! select * from details; ! } | tee -a log show Then it gives me a... (2 Replies)
Discussion started by: sendhilmani
2 Replies

2. Shell Programming and Scripting

functions in

hi could anybody please suggest me how to put a function memory for particular user. say i am a user rao. want have a function foo in memory . i have done this .typed the function function in the shell it worked for the session.but next time i do login its not there . i can i have a... (6 Replies)
Discussion started by: Raom
6 Replies

3. Shell Programming and Scripting

Use of functions

Hi my shell is tcsh can I have functions in my shell scripting? Is the below shell script correct. Can I have two functions and call one of them as required. ---------- echo "functions" f1 f1 () { echo "hello" } f2 () (1 Reply)
Discussion started by: amitrajvarma
1 Replies

4. Shell Programming and Scripting

get positive number n as argument script must calculate the factorial of its argument

Can someone please help me with this SHELL script? I need to create a script that gets a positive number n as an argument. The script must calculate the factorial of its argument. In other words, it must calculate n!=1x2x3x...xn. Note that 0!=1. Here is a start but I have no clue how to... (3 Replies)
Discussion started by: I-1
3 Replies

5. Shell Programming and Scripting

Need a little help with functions

I'm semi new to unix/linux and am trying to convert a program I wrote in C++ to a bash script. It's a program that prints Fibonacci's series. I have found scripts that will do it, but I'm trying persistently to get this one to work. The problem occurs when I try to return a value from the function.... (3 Replies)
Discussion started by: Glowworm
3 Replies

6. Shell Programming and Scripting

BASH: Factorial using FOR loop not working

Hi, I am trying to run the factorial script but it’s not working. The code is mentioned below: ------------------------------------------------------------------ /home/gc> cat fact.sh #!/bin/bash # using one command line parameter factorial=1 for (( number = 1; number <= $1 ;... (3 Replies)
Discussion started by: Technext
3 Replies

7. Shell Programming and Scripting

i think i need functions ?

Hi, im making a little script but need some help Code i have so far is read -p 'Bot Nickname:' ecnick read -p 'Bot Username:' ecusername read -p 'Bot Realname:' ecrealname read -p 'Your Email:' ecemail echo '' echo Your bots nickname is set to $ecnick echo Your bots username is set to... (2 Replies)
Discussion started by: Gemster
2 Replies

8. Programming

Functions

Hi All, Can any one help me. I am calling in a function2 with string as parameter from function1, the function1 gives 3 values. how i get the 3 values from funciton2 to function1. i have to give a return or something. thanks in advance. (2 Replies)
Discussion started by: uday.sena.m
2 Replies

9. Shell Programming and Scripting

How to execute functions or initiate functions as command line parameters for below requirement?

I have 7 functions those need to be executed as command line inputs, I tried with below code it’s not executing function. If I run the ./script 2 then fun2 should execute , how to initiate that function I tried case and if else also, how to initiate function from command line if then... (8 Replies)
Discussion started by: saku
8 Replies

10. Shell Programming and Scripting

README: Factorial quick chart with sed & bc:

Hi all, While doing some checks I found a kind of interesting arithmetic factorial chart with sed, sharing this may be simple but thought to share, # n=20;for i in `seq $n`;do printf "`seq $i|xargs|sed 's/ /*/g'`= ";echo "`seq $i|xargs|sed 's/ /*/g'`"| bc;done 1= 1 1*2= 2 1*2*3= 6... (6 Replies)
Discussion started by: rveri
6 Replies
combinatorics(n)						 Tcl Math Library						  combinatorics(n)

NAME
combinatorics - Combinatorial functions in the Tcl Math Library SYNOPSIS
package require Tcl 8.2 package require math ?1.2? ::math::ln_Gamma z ::math::factorial x ::math::choose n k ::math::Beta z w DESCRIPTION
The math package contains implementations of several functions useful in combinatorial problems. COMMANDS
::math::ln_Gamma z Returns the natural logarithm of the Gamma function for the argument z. The Gamma function is defined as the improper integral from zero to positive infinity of t**(x-1)*exp(-t) dt The approximation used in the Tcl Math Library is from Lanczos, ISIAM J. Numerical Analysis, series B, volume 1, p. 86. For "x > 1", the absolute error of the result is claimed to be smaller than 5.5*10**-10 -- that is, the resulting value of Gamma when exp( ln_Gamma( x) ) is computed is expected to be precise to better than nine significant figures. ::math::factorial x Returns the factorial of the argument x. For integer x, 0 <= x <= 12, an exact integer result is returned. For integer x, 13 <= x <= 21, an exact floating-point result is returned on machines with IEEE floating point. For integer x, 22 <= x <= 170, the result is exact to 1 ULP. For real x, x >= 0, the result is approximated by computing Gamma(x+1) using the ::math::ln_Gamma function, and the result is expected to be precise to better than nine significant figures. It is an error to present x <= -1 or x > 170, or a value of x that is not numeric. ::math::choose n k Returns the binomial coefficient C(n, k) C(n,k) = n! / k! (n-k)! If both parameters are integers and the result fits in 32 bits, the result is rounded to an integer. Integer results are exact up to at least n = 34. Floating point results are precise to better than nine significant figures. ::math::Beta z w Returns the Beta function of the parameters z and w. Beta(z,w) = Beta(w,z) = Gamma(z) * Gamma(w) / Gamma(z+w) Results are returned as a floating point number precise to better than nine significant digits provided that w and z are both at least 1. math 4.2 combinatorics(n)
All times are GMT -4. The time now is 06:41 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy