Bài tập C# kinh điển

Để củng cố những kiến thức đã học về lập trình C#. Mời bạn đọc cùng thực hành qua một số bài tập C# cơ bản dưới đây.

Mục lục nội dung

Bài tập C# kinh điển

1. Bài 01

Viết một chương trình C# in ra dãy số Fibonacci

Gợi ý:

  • Sử dụng đệ quy
  • Không sử dụng đệ quy

Code mẫu: In dãy số Fibonacci trong C không sử dụng đệ quy.

using System;
using System.Collections;
namespace Csharp
{
    class Program
    {
        static void Main(string[] args)
        {
            int i;
            Console.Write("10 so dau tien cua day so Fibonacci: \n");
            for (i = 0; i < 10; i++)
            {
                Console.Write("{0} ", fibonacci(i));
            }
         
            Console.WriteLine();
            Console.ReadKey();
        }


        /**
         * Tinh so Fibonacci thu n
         *
         * @param n: chi so cua so Fibonacci tinh tu 0
         *           vd: F0 = 0, F1 = 1, F2 = 1, F3 = 2
         * @return So Fibonacci thu n
         */
        static int fibonacci(int n)
        {
            int f0 = 0;
            int f1 = 1;
            int fn = 1;
            int i;

            if (n < 0)
            {
                return -1;
            }
            else if (n == 0 || n == 1)
            {
                return n;
            }
            else
            {
                for (i = 2; i < n; i++)
                {
                    f0 = f1;
                    f1 = fn;
                    fn = f0 + f1;
                }
            }
            return fn;
        }
    }
}

Kết quả:

10 so dau tien cua day so Fibonacci: 
0 1 1 2 3 5 8 13 21 34 

2. Bài 02

Viết một chương tình C kiểm tra số nguyên tố.

Code mẫu:

using System;
using System.Collections;
namespace Csharp
{
    class Program
    {
        static void Main(string[] args)
        {
            int i;
            Console.Write("Cac so nguyen to nho hon 100 la: \n");
            for (i = 0; i < 100; i++)
            {
                if (isPrimeNumber(i))
                {
                    Console.Write("{0} ", i);
                }
            }

            Console.WriteLine();
            Console.ReadKey();
        }


        /**
     * check so nguyen to trong C
     *
    
     * @param n: so nguyen duong
     * @return 1 la so nguyen so,
     *         0 khong la so nguyen to
     */
        static Boolean isPrimeNumber(int n)
        {
            // so nguyen n < 2 khong phai la so nguyen to
            if (n < 2)
            {
                return false;
            }
            // check so nguyen to khi n >= 2
            int squareRoot = (int)Math.Sqrt(n);
            int i;
            for (i = 2; i <= squareRoot; i++)
            {
                if (n % i == 0)
                {
                    return false;
                }
            }
            return true;
        }
    }
}
Kết quả:
Cac so nguyen to nho hon 100 la: 
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 

3. Bài 03

Viết một chương trình C# tính giai thừa của một số bằng cách không sử dụng đệ quy và có sử dụng đệ quy.

Gợi ý:

  • Sử dụng đệ quy
  • Không sử dụng đệ quy

Code mẫu: Tính giai thừa trong C không sử dụng đệ quy.

using System;
using System.Collections;
namespace Csharp
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 5;
            int b = 0;
            int c = 10;
            Console.Write("Giai thua cua {0}  la: {1} \n", a, tinhGiaithua(a));
            Console.Write("Giai thua cua {0}  la: {1} \n", b, tinhGiaithua(b));
            Console.Write("Giai thua cua {0}  la: {1} \n", c, tinhGiaithua(c));

            Console.WriteLine();
            Console.ReadKey();
        }


        /**
        * tinh giai thua
        *
        * @param n: so nguyen duong
        * @return giai thua cua so n
        */
        static long tinhGiaithua(int n)
        {
            int i;
            long giai_thua = 1;
            if (n == 0 || n == 1)
            {
                return giai_thua;
            }
            else
            {
                for (i = 2; i <= n; i++)
                {
                    giai_thua *= i;
                }
                return giai_thua;
            }
        }
    }
}
Kết quả:
Giai thua cua 5  la: 120
Giai thua cua 0  la: 1
Giai thua cua 10  la: 3628800

4. Bài 04

Viết một chương trình C# để chuyển đổi số nguyên N sang hệ cơ số B (2 <= B <= 32) bất kỳ.

Code mẫu: Chuyển đối hệ cơ số 10 sang hệ cơ số B

using System;
using System.Collections;
namespace Csharp
{
    class Program
    {
        public static int CHAR_55 = 55;
        public static int CHAR_48 = 48;

        static void Main(string[] args)
        {
            int n = 14;
            Console.Write("So {0} trong he co so 2 = ", n);
            convertNumber(n, 2);
            Console.Write("\nSo {0} trong he co so 16 = ", n);
            convertNumber(n, 16);

            Console.WriteLine();
            Console.ReadKey();
        }


        /**
         * chuyen doi so nguyen n sang he co so b
         *
         * @param n: so nguyen
         * @param b: he co so
         */
        static int convertNumber(int n, int b)
        {
            if (n < 0 || b < 2 || b > 16)
            {
                Console.Write("He co so hoac gia tri chuyen doi khong hop le!");
                return 0;
            }
            int i;
            char[] arr = new char[20];
            int count = 0;
            int m;
            int remainder = n;
            while (remainder > 0)
            {
                if (b > 10)
                {
                    m = remainder % b;
                    if (m >= 10)
                    {
                        arr[count] = (char)(m + CHAR_55);
                        count++;
                    }
                    else
                    {
                        arr[count] = (char)(m + CHAR_48);
                        count++;
                    }
                }
                else
                {
                    arr[count] = (char)((remainder % b) + CHAR_48);
                    count++;
                }
                remainder = remainder / b;
            }
            // hien thi he co so
            for (i = count - 1; i >= 0; i--)
            {
                Console.Write("{0}", arr[i]);
            }
            return 1;
        }
    }
}
Kết quả:
So 14 trong he co so 2 = 1110
So 14 trong he co so 16 = E

Trên đây là một số bài tập kinh điển về eLib.VN tổng hợp được. Mỗi bài toán đều sẽ có nhiều cách giải, hướng giải quyết. Bạn đọc có thể dùng một hướng giải quyết khác. Chúc các bạn thành công!

Ngày:02/11/2020 Chia sẻ bởi:Chương

CÓ THỂ BẠN QUAN TÂM