Computer >> Máy Tính >  >> Lập trình >> C ++

Tìm chữ số cuối cùng khi giai thừa của A chia giai thừa của B trong C ++


Nếu chúng ta có hai số nguyên A và B và B> =A, chúng ta phải tính chữ số cuối cùng của B! / MỘT! Khi giá trị của A =2 và B =4, thì kết quả là 2, 2! =2 và 4! =24, vậy 24/2 =12. chữ số cuối cùng là 2.

Như chúng ta biết rằng chữ số cuối cùng của giai thừa sẽ nằm trong tập hợp {0, 1, 2, 4, 6}, hãy làm theo các bước sau để giải quyết vấn đề này -

  • Chúng tôi sẽ tìm ra sự khác biệt giữa A và B
  • nếu diff> =5, thì câu trả lời là 0
  • nếu không, hãy lặp lại từ (A + 1) đến B. Sau đó nhân và lưu trữ chúng.
  • Chữ số cuối cùng của phép nhân sẽ là câu trả lời.

Ví dụ

#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);
}

Đầu ra

Last digit is: 2