BÀI TẬP C#
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

In dãy số Fibonacci trong C#

Trong bài viết này mình sẽ hướng dẫn các bạn cách in dãy số Fibonacci trong C#. Đây là dạng bài tập thường gặp khi bắt đầu học bất cứ một ngôn ngữ lập trình nào. Trước khi vào viết chương trình, các bạn cần hiểu được dãy Fibonacci là gì đã nhé.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Dãy Fibonacci là dãy vô hạn các số tự nhiên bắt đầu bằng hai phần tử 0 và 1 hoặc 1 và 1, các phần tử sau đó được thiết lập theo quy tắc mỗi phần tử luôn bằng tổng hai phần tử trước nó.

Ví dụ: 0, 1, 1, 2, 3, 5, 8, ... .

1. In dãy số Fibonacci sử dụng vòng lặp for trong C#

Đây là cách đơn giản nhất để in ra một dãy số Fibonacci. Nếu các bạn biết được thuật toán của nó thì sử dụng cách nào cũng có thể in ra được.

Các bạn biết rằng dãy Fibonacci bao gồm các số mà số kế tiếp sẽ bằng hai số phía sau nó cộng lại. Vậy nên thuật toán cũng dựa vào đó để viết ra mà thôi.

nextNumber = number1 + number2;
number1 = number2;
number2 = nextNumber;

Để có thể in ra một dãy số thì ta sử dụng thêm vòng lặp for để lặp thuật toán đến một số nhất định nào đó. Số này có thể do người dùng nhập vào, khi đó ta sẽ có một dãy số Fibonacci từ 0 đến số mà người dùng nhập vào.

using System;
namespace ConsoleApp5
{
    class Program
    {
        static void Main(string[] args)
        {
            int firstNumber = 0, SecondNumber = 1, nextNumber, numberOfElements;
            Console.Write("Nhap vao so phan tu day Fibonacci ban muon in: ");
            numberOfElements = int.Parse(Console.ReadLine());
            if (numberOfElements < 2)
            {
                Console.Write("Vui long nhap so phan tu lon hon 2: ");
            }
            else
            {
                //In so thu nhat va so thu 2
                Console.Write("Day Fibonacci: " +firstNumber + " " + SecondNumber + " ");
                //Su dung vong lap for de lap den so ma nguoi dung nhap vao
                for (int i = 2; i < numberOfElements; i++)
                {
                    //ap dung thuat toan day Fibonacci
                    nextNumber = firstNumber + SecondNumber;
                    Console.Write(nextNumber + " ");
                    firstNumber = SecondNumber;
                    SecondNumber = nextNumber;
                }
            }
            Console.ReadKey();
        }
    }
}

Kết quả:

bai2 01 png

2. In dãy số Fibonacci sử dụng đệ quy trong C#

Trong chương trình này mình sẽ viết một hàm InFibonacci() để định nghĩa day Fibonacci. Sau đó gọi ở hàm main() và truyền tham số bắt đầu vào cho nó.

using System;
namespace ConsoleApp5
{
    class Program
    {
        static void Main(string[] args)
        {
            //khai báo và khởi tạo hai biến number, numberOfElements (số phần tử trong dãy muốn in)
            int number = 0, numberOfElements;
            Console.Write("Nhap vao so phan tu day Fibonacci ban muon in: ");
            numberOfElements = int.Parse(Console.ReadLine());
            //Su dung vong lap for de lap den so ma nguoi dung nhap vao
            Console.Write("Day Fibonacci: ");
            for (int i = 0; i < numberOfElements; i++)
            {
                //gọi hàm InFibonacci() với tham số truyền vào là number
                Console.Write(InFibonacci(number) + "\t");
                number++;
            }
            Console.ReadKey();
        }
        //viết hàm để trả về dãy Fibonacci
        static int InFibonacci(int num)
        {
            if (num == 0)
                return 0;
            else if (num == 1)
                return 1;
            else
                return (InFibonacci(num - 1) + InFibonacci(num - 2));
        }
    }
}

Kết quả:

bai2 02 png

3. In số Fibonacci thứ n trong C#

Trong phần này mình sẽ sử dụng để quy để thực hiện in số Fibonacci thứ n, các bạn cùng xem nhé. Việc in số Fibonacci thứ n cũng tương tự như in dãy số Fibonacci.

using System;
namespace ConsoleApp5
{
    class Program
    {
        static void Main(string[] args)
        {
            //khai báo và khởi tạo biến numberOfElements (số phần tử trong dãy muốn in)
            int numberOfElements;
            Console.Write("Nhap vao so phan tu day Fibonacci ban muon in: ");
            numberOfElements = int.Parse(Console.ReadLine());
            //giảm số phần tử đi 1 vì chuỗi bắt đầu từ 0
            numberOfElements -= 1;
            //in số thứ numberOfElements trong dãy Fibonacci
            Console.Write($"So Fibonacci thu {numberOfElements + 1} la: {InFibonacci(numberOfElements)}");
            Console.ReadKey();
        }
        //viết hàm để trả về dãy Fibonacci
        static int InFibonacci(int num)
        {
            if (num == 0)
                return 0;
            else if (num == 1)
                return 1;
            else
                return (InFibonacci(num - 1) + InFibonacci(num - 2));
        }
    }
}

Kết quả:

bai2 03 png

Trên đây là các chương trình in dãy số Fibonacci và in số Fibonacci thứ n. Ngoài các cách trên vẫn còn một số cách khác nữa, các bạn có thể tìm hiểu và thực hiện nhé. Chúc các bạn thành công !!!

Cùng chuyên mục:

Cách viết hoa ký tự đầu tiên trong C#

Cách viết hoa ký tự đầu tiên trong C#

Mình sẽ thực hiện các chương trình để viết hoa ký từ đầu với các…

Cách xóa khoảng trắng một chuỗi trong C#

Cách xóa khoảng trắng một chuỗi trong C#

Mình sẽ thực hiện ba chương trình để xóa khoảng trắng bằng ba ...

Tìm phần nguyên và phần dư của phép chia trong C#

Tìm phần nguyên và phần dư của phép chia trong C#

Mình sẽ thực hiện các chương trình để tìm phần nguyên và phần dư bằng…

Cách kiểm tra năm nhuận trong C#

Cách kiểm tra năm nhuận trong C#

Hiểu đơn giản thì năm nhuận sẽ hơn năm không nhuận một ...

Chương trình kiểm tra số chẵn hay số lẻ trong C#

Chương trình kiểm tra số chẵn hay số lẻ trong C#

Mình sẽ thực hiện 3 chương trình với 3 cách khác nhau để kiểm tra…

Cách cộng hai số trong C# được nhập từ bàn phím

Cách cộng hai số trong C# được nhập từ bàn phím

Trong bài viết này mình sẽ hướng dẫn các bạn thực hiện chương trình cộng…

Viết ứng dụng quản lý học sinh C# Winfroms và Firebase

Viết ứng dụng quản lý học sinh C# Winfroms và Firebase

Cụ thể mình sẽ thực hiện viết một ứng dụng quản lý học sinh đơn…

Cách xóa dữ liệu trên Firebase với C# Winforms

Cách xóa dữ liệu trên Firebase với C# Winforms

Để có thể ôn lại các kiến thức ở các bài trước, mình vẫn sẽ…

Cách Update dữ liệu từ C# Winforms lên Firebase

Cách Update dữ liệu từ C# Winforms lên Firebase

Để có thể thao tác được với dữ liệu trong Realtime Database,

Cách Insert dữ liệu từ C# Winforms lên Firebase

Cách Insert dữ liệu từ C# Winforms lên Firebase

Cách lấy dữ liệu từ Firebase về C# Winforms

Cách lấy dữ liệu từ Firebase về C# Winforms

Trong bài viết này chúng ta sẽ cùng nhau tìm hiểu cách lấy dữ liệu…

Cách kết nối C# Winforms với Firebase

Cách kết nối C# Winforms với Firebase

Sự kiện CellClick DataGridView trong C# Winforms

Sự kiện CellClick DataGridView trong C# Winforms

Sự kiện CellContentClick DataGridView trong C# Winforms

Sự kiện CellContentClick DataGridView trong C# Winforms

Mình sẽ hướng dẫn các bạn cách tạo và xử lý sự kiện CellContentClick

Sự kiện ValueChanged DateTimePicker trong C# Winforms

Sự kiện ValueChanged DateTimePicker trong C# Winforms

Mình sẽ hướng dẫn các bạn cách tạo và xử lý sự kiện ValueChanged

Sự kiện SelectedIndexChanged ListView trong C# Winforms

Sự kiện SelectedIndexChanged ListView trong C# Winforms

Mình sẽ giới thiệu các bạn cách tạo và xử lý sự kiện SelectedIndexChanged

Sự kiện SelectedIndexChanged ListBox trong C# Winforms

Sự kiện SelectedIndexChanged ListBox trong C# Winforms

Mình sẽ hướng dẫn cách tạo và xử lý sự kiện SelectedIndexChanged ...

Sự kiện SelectedIndexChanged ComboBox trong C# Winforms

Sự kiện SelectedIndexChanged ComboBox trong C# Winforms

Mình sẽ hướng dẫn các bạn cách tạo và xử lý sự ..

Sự kiện CheckedChanged RadioButton trong C# Winforms

Sự kiện CheckedChanged RadioButton trong C# Winforms

Trong bài viết này chúng

Sự kiện CheckedChanged CheckBox trong C# Winforms

Sự kiện CheckedChanged CheckBox trong C# Winforms

Trong bài viết này chúng ta sẽ cùng nhau tìm hiểu về sự kiện CheckedChanged…

Top