Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

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


Cho hai số nguyên A và B, B ≥ A, tính chữ số cuối của B! / A! Khi A = 2, B = 4, kết quả 2 vì 2! = 2, 4! = 24, 24/2 = 12, chữ số cuối 2.

Vì chữ số cuối giai thừa nằm trong {0, 1, 2, 4, 6}, làm theo các bước:

  • Tìm hiệu giữa A và B
  • Nếu diff ≥ 5, đáp án 0
  • Ngược lại, lặp từ (A+1) đến B, nhân và lưu lại.
  • Chữ số cuối của tích là đáp án.

Ví dụ mã nguồn

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

Kết quả

Last digit is: 2