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

โปรแกรมค้นหาตัวเลขสุดท้ายของ n'th Fibonnaci Number ใน C++


ในปัญหานี้ เราได้รับหมายเลข N หน้าที่ของเราคือสร้างโปรแกรมเพื่อค้นหาหลักสุดท้ายของหมายเลข Nth Fibonacci ใน C++

คำอธิบายปัญหา

เราจำเป็นต้องค้นหาตัวเลขสุดท้าย (เช่น LSB ) ของหมายเลข Fibonacci ที่ N

มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน

อินพุต:N =120 เอาต์พุต:1

แนวทางการแก้ปัญหา

วิธีแก้ปัญหาง่ายๆ ก็คือการใช้สูตรฟีโบนักชีโดยตรงเพื่อค้นหาเทอมที่ N แต่วิธีนี้จะเป็นไปไม่ได้เมื่อ N เป็นจำนวนที่มาก เพื่อเอาชนะสิ่งนี้ เราจะใช้คุณสมบัติของ Fibonacci Series ที่หลักสุดท้ายซ้ำตัวเองหลังจาก 60 เทอม เช่น. หลักสุดท้ายของเทอมที่ 75 เหมือนกับของเทอมที่ 135

ซึ่งหมายความว่าการทำงานจนถึง 60 จะทำให้เรามีชุดค่าผสมที่เป็นไปได้ทั้งหมด และเพื่อค้นหาคำที่จะใช้ เราจะพบม็อดของตัวเลขที่มี 60

ตัวอย่าง

#include
using namespace std;
long int fibo(int N){
   long int a=0,b=1,c;
   for(int i=2; i< N;i++) {
      c=a+b;
      a=b;
      b=c;
   }
   return c;
}
int findLastDigitNterm(int N) {
   N = N % 60;
   return ( fibo(N)%10);
}
int main() {
   int N = 683;
   cout<<"The last digit of "<<N<<"th Fibonacci term is "<<findLastDigitNterm(N);
   return 0;
}

ผลลัพธ์

The last digit of 683th Fibonacci term is 1