求在 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.