求在 C++ 語言中 A 的階乘除以 B 的階乘時的最後一位數


如果我們有兩個整數 A 和 B,且 B >= A,我們必須計算 B! / A! 的最後一位數。當 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

更新於: 2019 年 12 月 19 日

130 個瀏覽量

開啟你的職業生涯

完成課程獲得認證

立即開始
廣告
© . All rights reserved.