求在 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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascrip
PHP