Hackety Hacking Problem Factorial: Difference between revisions

From OLPC
Jump to navigation Jump to search
(New page: == Problem Statement == You have a word each made up of different letter no letter repeated.You have been given the length of the word.Now the problem is that you have to print the number...)
 
(Add category.)
 
(12 intermediate revisions by 4 users not shown)
Line 11: Line 11:


So you have to write a program which takes the word length as the input from the user,And prints the number of ways in which they can be arranged.
So you have to write a program which takes the word length as the input from the user,And prints the number of ways in which they can be arranged.

== Constrains ==
*There can be more than one way to solve it.
*You have to use recursion.
*You have to give as many no.of solution as you can give

== Help ==

Have you ever heard the word '''recursion''', if not than let me explain.
It is the name for algorithm which is to call the function from within itself but with changed parameters.

== Sample Output ==

<pre>
Enter the word length : 5
The number of ways the word can be arranged is = 120
</pre>
== Curriculum Connections ==

* How to find factorial with the help of ruby.
* What is recursion & its importance.
* How to convert a recursion version of a program into iterative version.

== Solution ==
'''I st Solution'''
<pre>
f=1
puts("Enter the no. whose factorial to be calculated: ")

n=gets.chomp.to_i #Convert the incoming string input into an integer.To do calculations.

#Method fact which is used to calculate factorial

def fact(n,k)
k=k*n
k
end

count=1
while count<n
f=fact(count+1,f)
count = count + 1
end

puts f

</pre>

'''IInd Solution'''
This one is the iterative version of this program

<pre>
f=1
puts("Enter the no. whose factorial to be calculated: ")

n=gets.chomp.to_i #Convert the incoming string input into an integer.To do calculations.

n.times do|x|
f=f*x
end
puts f
</pre>
[[Category: Hackety Lesson Plan]]

Latest revision as of 05:00, 6 April 2008

Problem Statement

You have a word each made up of different letter no letter repeated.You have been given the length of the word.Now the problem is that you have to print the number of ways in which the letters can be arranged to return a new word. For Example: Word Length=3 take a word "bat" It can be written in 6 different ways: abt atb bat bta tab tba

So you have to write a program which takes the word length as the input from the user,And prints the number of ways in which they can be arranged.

Constrains

  • There can be more than one way to solve it.
  • You have to use recursion.
  • You have to give as many no.of solution as you can give

Help

Have you ever heard the word recursion, if not than let me explain. It is the name for algorithm which is to call the function from within itself but with changed parameters.

Sample Output

Enter the word length : 5
The number of ways the word can be arranged is = 120

Curriculum Connections

  • How to find factorial with the help of ruby.
  • What is recursion & its importance.
  • How to convert a recursion version of a program into iterative version.

Solution

I st Solution

f=1
puts("Enter the no. whose factorial to be calculated: ")

n=gets.chomp.to_i #Convert the incoming string input into an integer.To do calculations.

#Method fact which is used to calculate factorial

def fact(n,k)
k=k*n
k
end

count=1
while count<n
f=fact(count+1,f)
count = count + 1
end

puts f

IInd Solution This one is the iterative version of this program

f=1
 
puts("Enter the no. whose factorial to be calculated: ")

n=gets.chomp.to_i                                        #Convert the incoming string input into an integer.To do calculations.

n.times do|x|
        f=f*x
end
puts f