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