C# Exercise: 133 Function Multiply & MultiplyR

In this exercise in C#, you will need to write two functions called "Multiply" and "MultiplyR" to calculate the product of two numbers using sums. The first version must be iterative, and the second one must be recursive. This exercise will help you understand how multiplication can be performed through repeated addition, and also understand the differences between iterative and recursive solutions in C#. By completing this exercise, you will gain experience in how to apply loops in one version and manage recursive calls in the other. The iterative version will use a loop to perform the repetitive multiplication, while the recursive version will rely on function calls to achieve the same result, allowing you to dive deeper into the use of recursion in programming. This exercise will also teach you how to properly handle input and output parameters in C#.

By completing this exercise, you will be able to implement and compare iterative and recursive solutions to solve mathematical problems in your C# projects.

 Lesson

Functions

 Exercise

Function Multiply & MultiplyR

 Objetive

Write two C# functions, Multiply and MultiplyR, to calculate the product of two numbers using sums. T he first version must be iterative, and the second one must be recursive.

 Example Code

// Import the System namespace to use basic classes like Console
using System;

class Program
{
    // Function to multiply two numbers iteratively using addition
    public static int Multiply(int a, int b)
    {
        int product = 0;  // Variable to store the product

        // Add 'a' to itself 'b' times to simulate multiplication
        for (int i = 0; i < Math.Abs(b); i++)
        {
            product += a;  // Add 'a' repeatedly
        }

        // If b is negative, the product should be negative
        if (b < 0)
        {
            product = -product;  // Negate the product
        }

        return product;
    }

    // Function to multiply two numbers recursively using addition
    public static int MultiplyR(int a, int b)
    {
        // Base case: if b is 0, the product is 0
        if (b == 0)
        {
            return 0;
        }
        else
        {
            // Recursive case: add 'a' recursively and handle negative b
            if (b < 0)
            {
                return -a + MultiplyR(a, b + 1);  // For negative b, subtract 'a'
            }
            else
            {
                return a + MultiplyR(a, b - 1);  // For positive b, add 'a'
            }
        }
    }

    // Main function to test the Multiply and MultiplyR functions
    public static void Main()
    {
        // Test the Multiply function
        Console.WriteLine("Iterative Multiply:");
        Console.WriteLine("3 * 4 = " + Multiply(3, 4));  // Expected output: 12
        Console.WriteLine("-3 * 4 = " + Multiply(-3, 4));  // Expected output: -12
        Console.WriteLine("3 * -4 = " + Multiply(3, -4));  // Expected output: -12
        Console.WriteLine("0 * 4 = " + Multiply(0, 4));  // Expected output: 0

        // Test the MultiplyR function
        Console.WriteLine("\nRecursive Multiply:");
        Console.WriteLine("3 * 4 = " + MultiplyR(3, 4));  // Expected output: 12
        Console.WriteLine("-3 * 4 = " + MultiplyR(-3, 4));  // Expected output: -12
        Console.WriteLine("3 * -4 = " + MultiplyR(3, -4));  // Expected output: -12
        Console.WriteLine("0 * 4 = " + MultiplyR(0, 4));  // Expected output: 0
    }
}

More C# Exercises of Functions

 Functions: greeting + farewell
Write a C# program whose Main must be like this: public static void Main() { SayHello(); SayGoodbye(); } SayHello and SayGoodbye are functio...
 Function with parameters
Write a C# program whose Main must be like this: public static void Main() { SayHello("John"); SayGoodbye(); } SayHello and SayGoodbye are f...
 Function returning a value
Write a C# program whose Main must be like this: public static void Main() { int x= 3; int y = 5; Console.WriteLine( Sum(x,y) ); } "Sum" is...
 Function returning a value V2
Write a C# program whose Main must be like this: public static void Main() { __Console.WriteLine("\"Hello, how are you\" contains {0} spaces", __...
 Function write centered
Write a C# function to write centered on screen the text that is indicated as a parameter (supposing a screen width of 80 characters): WriteCentere...
 Function write underlined
Write a C# function able to write centered on screen the text that is indicated as a parameter (supposing a screen width of 80 characters) and then un...
 Function sum of array
Write a C# program to calculate the sum of the elements in an array. "Main" should be like this: public static void Main() { int[] example = {20, ...
 Function double
Write a C# function named "Double" to calculate and return an integer number doubled. For example. Double(7) should return 14....
 Function Double reference parameter
Write a C# function named "Double" to calculate the double of an integer number, and modify the data passed as an argument. It must be a "void" functi...
 Function swap reference parameters
Write a C# function named "Swap" to swap the values of two integer numbers, which are passed by reference. An example of use might be: int x=5, ...
 Function power local variables
Write a C# function named "Power" to calculate the result of raising an integer number to another (positive integer) number. It must return another in...
 Function recursive power
Write a C# function that calculates the result of raising an integer to another integer (eg 5 raised to 3 = 53 = 5 × 5 × 5 = 125). This function must ...
 Function Fibonacci
Write a C# program that uses recursion to calculate a number in the Fibonacci series (in which the first two items are 1, and for the other elements, ...
 Function modify a letter in a string
Write a C# function named "ChangeChar" to modify a letter in a certain position (0 based) of a string, replacing it with a different letter: string...
 Function IsPrimeTarea
Write a C# function named "IsPrime", which receives an integer number and retuns true if it is prime, or false if it is not: if (isPrime(127)) ......
 Function Parameters of Main, Sum
Write a C# program named "sum", which receives two integer numbers in the command line and displays their sum, as in this example: sum 5 3 8...
 Function SumDigits
Write a C# function SumDigits that receives a number and returns any results in the sum of its digits. For example, if the number is 123, the sum woul...
 Function Factorial
The factorial of a number is expressed as follows: n! = n · (n-1) · (n-2) · (n-3) · ... · 3 · 2 · 1 For example, 6! = 6·5·4·3·2·1 Create a r...
 Function Parameters of Main, Reverse
Write a C# program named "reverse", which receives several words in the command line and displays them in reverse order, as in this example: revers...
 Function GetInt
Write a C# function named "GetInt", which displays on screen the text received as a parameter, asks the user for an integer number, repeats if the num...
 Function tasks database
Write in C# an improved version of the "tasks database", splitting it into functions....
 Function Greatest value in a array
Write a C# function which returns the greatest value stored in an array of real numbers which is specified as parameter: float[] data={1.5f, 0.7f, ...
 Function factorial (iterative)
Write an C# iterative (non-recursive) function to calculate the factorial of the number specified as parameter: Console.Write ( Factorial (6) ); ...
 Function WriteTitle
Write a C# function named "WriteTitle" to write a text centered on screen, uppercase, with extra spaces and with a line over it and another line under...
 Function return value for Main
Write a C# program in which you write a title (using the previous WriteTitle function) which the user will specify in command line. If no text is spec...
 Function CountDV
Write a C# function that calculates the amount of numeric digits and vowels that a text string contains. It will accept three parameters: the string t...
 Function IsAlphabetic
Write a C# function that tells if a character is alphabetic (A through Z) or not. It should be used like this: if (IsAlphabetic ("a")) System.Cons...
 Function IsNumber
Write a C# function that tells if a string is an intenger number. It should be used like this: if (IsNumber ("1234")) System.Console.WriteLine ("I...
 Function calculator, params of Main
Write a C# program to calculate a sum, subtraction, product or division, analyzing the command line parameters: calc 5 + 379 (Parameters must be...
 Function calculator, params and return value of Main
Write a C# program to calculate a sum, subtraction, product or division, analyzing the command line parameters: calc 5 + 379 (Parameters must be...
 Function MinMaxArray
Write a C# function named MinMaxArray, to return the minimum and maximum values stored in an array, using reference parameters: float[] data={1.5f,...
 Function Reverse, recursive
Write a C# program that uses recursion to reverse a string of characters (for example, from "Hello" it would return "olleH")....
 Function WriteRectangle
Write a C# function WriteRectangle to display a (filled) rectangle on the screen, with the width and height indicated as parameters, using asterisks. ...
 Function Palindrome, iterative
Write an C# iterative function to say whether a string is symmetric (a palindrome). For example, "RADAR" is a palindrome....
 Function Palindrome, recursive
Write a C# recursive function to say whether a string is symmetric (a palindrome). For example, "RADAR" is a palindrome....
 Function GetMinMax
Write a C# function named "GetMinMax", which will ask the user for a minimum value (a number) and a maximum value (another number). It should be calle...