在本文中,我们将讨论一个程序,以查找给定数字阶乘中的第一个数字。
这样做的基本方法是找到数字的阶乘,然后获得其第一个数字。但是由于阶乘可能最终变得太大,因此我们将进行一些小的调整。
在任何时候,我们都会检查任何尾随零,并删除是否存在。由于尾随零对第一位没有任何影响;我们的结果不会改变。
#include <bits/stdc++.h>
using namespace std;
int calc_1digit(int n) {
long long int fact = 1;
for (int i = 2; i <= n; i++) {
fact = fact * i;
//删除尾随零
while (fact % 10 == 0)
fact = fact / 10;
}
//查找第一个数字
while (fact >= 10)
fact = fact / 10;
return fact;
}
int main() {
int n = 37;
cout << "The first digit : " << calc_1digit(n) << endl;
return 0;
}输出结果
The first digit : 1