Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

โปรแกรมสำหรับตัวเลขฟีโบนักชีในC


ด้วยตัวเลข 'n' ภารกิจคือการสร้างอนุกรมฟีโบนักชีจนถึงเริ่มต้นจาก 0 ถึง n โดยที่ชุดฟีโบนักชีของจำนวนเต็มอยู่ในรูปแบบ

0, 1, 1, 2, 3, 5, 8, 13, 21, 34

โดยที่จำนวนเต็ม 0 และ 1 จะมีช่องว่างคงที่ หลังจากนั้นให้เพิ่มตัวเลขสองหลัก เช่น

0+1=1(3rd place)
1+1=2(4th place)
2+1=3(5th place) and So on

ลำดับ F(n) ของอนุกรมฟีโบนักชีจะมีความสัมพันธ์แบบวนซ้ำที่กำหนดเป็น −

Fn = Fn-1 + Fn-2
Where, F(0)=0 and F(1)=1 are always fixed

มีหลายวิธีที่สามารถใช้เพื่อสร้างอนุกรม fiboacce -

วิธีการแบบเรียกซ้ำ - ในที่นี้ ฟังก์ชันการเข้าใกล้จะเรียกตัวเองหลังจากทุกค่าจำนวนเต็ม ใช้งานง่ายและสะดวก แต่จะนำไปสู่ความซับซ้อนของเวลาแบบเอ็กซ์โพเนนเชียล ซึ่งทำให้วิธีการนี้ไม่ได้ผล

ใช้สำหรับวนรอบ − ด้วยการใช้ For loop ในการสร้างความซับซ้อนของเวลาของอนุกรมฟีโบนักชีสามารถลดลงเหลือ O(n) ซึ่งทำให้วิธีนี้มีประสิทธิภาพ

ตัวอย่าง

Input-: n=10
Output-: 0 1 1 2 3 5 8 13 21 34

อัลกอริทึม

Start
Step 1 -> Declare function for Fibonacci series
   Void Fibonacci(int n)
      Declare variables as int a=0,b=1,c,i
      Print a and b
      Loop For i=2 and i<n and ++i
         Set c=a+b
         Print c
         Set a=b
         Set b=c
      End
Step 2 -> In main()
   Declare int as 10
   Call Fibonacci(n)
Stop

ตัวอย่าง

#include<stdio.h>
void fibonacci(int n){
   int a=0,b=1,c,i;
   printf("fibonacci series till %d is ",n);
   printf("\n%d %d",a,b);//it will print 0 and 1
   for(i=2;i<n;++i) //loop starts from 2 because 0 and 1 are the fixed values that series will take{
      c=a+b;
      printf(" %d",c);
      a=b;
      b=c;
   }
}
int main(){
   int n=10;
   fibonacci(n);
   return 0;
}

ผลลัพธ์

fibonacci series till 10 is
0 1 1 2 3 5 8 13 21 34