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

ค้นหาตัวเลขสุดท้ายเมื่อแฟกทอเรียลของ A หารแฟกทอเรียลของ B ใน C++


ถ้าเรามีจำนวนเต็ม A และ B สองจำนวน และ B>=A เราต้องคำนวณหลักสุดท้ายของ B! / เอ! เมื่อค่าของ A =2 และ B =4 ผลลัพธ์จะเป็น 2, 2! =2 และ 4! =24 ดังนั้น 24/2 =12 หลักสุดท้ายคือ 2

อย่างที่เราทราบดีว่าตัวเลขสุดท้ายของแฟคทอเรียลจะอยู่ในชุด {0, 1, 2, 4, 6} จากนั้นทำตามขั้นตอนเหล่านี้เพื่อแก้ปัญหา -

  • เราจะพบความแตกต่างระหว่าง A และ B
  • ถ้าต่าง>=5 คำตอบคือ 0
  • มิฉะนั้น ให้ทำซ้ำจาก (A + 1) ถึง B จากนั้นคูณและเก็บไว้
  • หลักสุดท้ายของการคูณจะเป็นคำตอบ

ตัวอย่าง

#include<iostream>
using namespace std;
int findLastDigit(long long int A, long long int B) {
   int x = 1;
   if (A == B)
      return 1;
   else if ((B - A) >= 5)
      return 0;
   else {
      for (long long int i = A + 1; i <= B; i++)
         x = (x * (i % 10)) % 10;
      return x % 10;
   }
}
int main() {
   cout << "Last digit is: " << findLastDigit(2, 4);
}

ผลลัพธ์

Last digit is: 2