You are on page 1of 6

Software Construction Lab Lab 02

Recursion

Bahria University,
Karachi Campus

LAB EXPERIMENT NO.


1
LIST OF TASKS

TASK NO. OBJECTIVE

1. The Fibonacci numbers are the numbers in the following sequence: 0, 1, 1, 2, 3, 5, 8,


13, 21, 34, 55…Write a Recursive function for the Fibonacci series for ‘n’ values
(user input).
2. Write recursive function for fetching all files residing on particular path.

3. Write a program in C# Sharp to print the first n natural number using recursion.

4. Write a program in C# Sharp to count the number of digits in a number using


recursion.

Submitted On:
05/10/2021
Software Construction Lab Lab 02
Recursion

Task 01. The Fibonacci numbers are the numbers in the following sequence:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55…Write a Recursive function for the Fibonacci
series for ‘n’ values (user input).

Solution:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Task01
{
class Program
{
public static int FindFibonacci(int n)
{
int p = 0;
int q = 1;
for (int i = 0; i < n; i++)
{
int temp = p;
p = q;
q = temp + q;
}
return p;
}
static void Main(string[] args)
{
Console.WriteLine("\nFibonacci numbers for n numbers of series\n");
Console.Write(" Input number of terms for the Fibonacci series : ");
int n1 = Convert.ToInt32(Console.ReadLine());
Console.Write("\n The Fibonacci series of {0} terms is : ", n1);
for (int i = 0; i < n1; i++)
{
Console.Write("{0} ", FindFibonacci(i));
}
Console.ReadKey();

}
}
}
Software Construction Lab Lab 02
Recursion

Output:

Task 02. Write recursive function for fetching all files residing on particular
path.

Solution:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace T2
{
class Program
{
private Dictionary<string, string> errors = new Dictionary<string, string>();
private List<string> result = new List<string>();

private void searchforfiles(string path)


{
try
{
foreach (string filename in Directory.GetFiles(path))
{
result.Add(filename);
}
foreach (string directory in Directory.GetDirectories(path))
{
searchforfiles(directory);
}
}
catch (System.Exception ex)
{
errors.Add(path, ex.Message);
}
}
Software Construction Lab Lab 02
Recursion

static void Main(string[] args)


{
Program obj = new Program();
Console.WriteLine("Kindly enter path in order to fetch files:");
Console.Write("Path:");
string path = Console.ReadLine();
Console.WriteLine("Following are the fetched files:");
obj.searchforfiles(path);
for (int i = 0; i < obj.result.Count; i++)
{
Console.WriteLine(obj.result[i]);
}
Console.ReadKey();
}
}
}

Output:
Software Construction Lab Lab 02
Recursion

Task 03. Write a program in C# Sharp to print the first n natural number
using recursion.

Solution:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace T3
{
class Program
{
public void printNatural(int n)
{
if (n > 1)
printNatural(n - 1);
Console.Write(n + " ");
}

static void Main(string[] args)


{
int n;
Program obj = new Program();
Console.Write("Numbers to print: ");
n = Convert.ToInt32(Console.ReadLine());
Console.Write("First " + n + " natural numbers are : ");
obj.printNatural(n);
Console.ReadLine();

}
}
}

Output:
Software Construction Lab Lab 02
Recursion

Task 04. Write a program in C# Sharp to count the number of digits in a


number using recursion.

Solution:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace T4
{
class Program
{
public static int getDigits(int n1, int nodigits)
{
if (n1 == 0)
return nodigits;

return getDigits(n1 / 10, ++nodigits);


}

static void Main(string[] args)


{
Console.Write("Count the number of digits in a number\n");
Console.Write("Input any number: ");
int num = Convert.ToInt32(Console.ReadLine());
Console.Write("\n The number {0} contains number of digits: {1}", num,
getDigits(num, 0));
Console.ReadLine();

}
}
}

Output:

You might also like