C++ 程序用于查找数字阶乘的第一位数字

server side programmingprogramming

在本文中,我们将讨论一个程序,用于查找给定数字阶乘的第一位数字。

基本方法是查找数字的阶乘,然后获取其第一位数字。但由于阶乘最终可能会太大,因此我们将进行小幅调整。

在每一点,我们都会检查是否有任何尾随零,并删除(如果存在)。由于尾随零对第一位数字没有任何影响;我们的结果不会改变。

示例

#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 << "第一位数字:" << calc_1digit(n) << endl;
   return 0;
}

输出

第一位数字:1

相关文章