Difference between revisions of "CSC231 Recursive Multiplication"

From dftwiki3
Jump to: navigation, search
(Assembly Version)
 
Line 61: Line 61:
 
=Assembly Version=
 
=Assembly Version=
  
 
+
<onlydft>
 
<code><pre>
 
<code><pre>
 
;;; ---------------------------------------------------------------------------
 
;;; ---------------------------------------------------------------------------
Line 151: Line 151:
 
 
 
</pre></code>
 
</pre></code>
 
+
</onlydft>
  
 
<br />
 
<br />

Latest revision as of 20:26, 2 December 2015

--D. Thiebaut 15:10, 29 November 2010 (UTC)


Definition

  • a and b are integers
  • a is a positive integer and can be null
  • algorithm
    • mult( a, b ) returns a multiplied by b
    • if a==0 mult( a, b ) = 0
    • if a==1 mult( a, b ) = b
    • otherwise mult( a, b ) = mult( a-1, b ) + b

Python Version

#! /usr/bin/python
# mult.py
# implements multiplication as a recursive
# process.  Works only with integers. a must
# be positive.
# mult( a, b ) = 0    if a == 0
# mult( a, b ) = b    if a == 1 
#              = b + mult( a-1, b ) otherwise
#

def mult( a, b ):
    if a==0: return 0
    if a==1: return b
    return b + mult( a-1, b )


def main():
    a = 0
    b = 100
    print "a = %d  b = %d  mult( %d, %d ) = %d " \
          % ( a, b, a, b, mult( a, b ) )


    a = 1
    b = 100
    print "a = %d  b = %d  mult( %d, %d ) = %d " \
          % ( a, b, a, b, mult( a, b ) )


    a = 3
    b = 100
    print "a = %d  b = %d  mult( %d, %d ) = %d " \
          % ( a, b, a, b, mult( a, b ) )


    a = 100
    b = 0
    print "a = %d  b = %d  mult( %d, %d ) = %d " \
          % ( a, b, a, b, mult( a, b ) )

main()

Assembly Version


...