F-Learning

Giới thiệu về thuật toán kiểm tra xem một số có phải là phần tử của dãy Fibonacci hay không.

            #include <stdio.h>
            #include <stdlib.h>
            
            /* run this program using the console pauser or add your own getch,
            system("pause") or input loop */
            int isFibonacci(int n);
            int main(int argc, char *argv[])
            {
                int n;
                do
                {
                    printf("Enter a number: ");
                    scanf("%d", &n);
                    if(isFibonacci(n)==1)
                        printf("It is a Fibonacci element\n");
                    else printf("It is not a Fibonacci element\n");
                } while (n > 1);
            
                getch();
                return 0;
            }
            int isFibonacci(int n)
            {
                int t1 = 1, t2 = 1, f = 1;
                if(n==1)
                    return 1;
                while (f<n)
                {
                    f = t1 + t2;
                    t1 = t2;
                    t2 = f;
                }
                return n==f;
            }
            void printFibonacci(int n)
            {
                int i=1;
                for(i;i<=n;i++)
                {
                    if(isFibonacci(i)==1)
                    {
                        printf("%d\t", i);
                    }
                }
            }
            
Thành phần máy tính

Đầu tiên chúng ta tìm hiểu dãy Fibonacci là gì: 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 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ó. Công thức của dãy Fibonacci là:

Thành phần máy tính

Chương trình định nghĩa một hàm isFibonacci và hàm main.

Hàm isFibonacci nhận một số nguyên n làm đối số và trả về một số nguyên. Nó kiểm tra xem số n có phải là phần tử của dãy Fibonacci hay không. Trong hàm này, ba biến t1, t2, và f được khởi tạo ban đầu là 1. Nếu n là 1, nó trả về 1, cho biết rằng nó là một phần tử Fibonacci. Trong vòng lặp while, f được tính bằng tổng của hai số trước đó t1t2, sau đó t1t2 được cập nhật. Nếu n bằng f, nó trả về 1, ngược lại trả về 0.

Trong hàm main

Thành phần máy tính

Có thể bạn sẽ thích