C++ 程序查找数字阶乘中的第一个数字


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

基本的方法是找出这个数字的阶乘,然后得到它的第一个数字。但是由于阶乘最终可能变得太大,所以我们会进行一些微小的调整。

在每个点上,我们都会检查是否存在尾随零,并删除如果存在的话。由于尾随零对第一个数字没有影响,因此我们的结果不会改变。

示例

 实时演示

#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;
      //removing trailing zeroes
      while (fact % 10 == 0)
         fact = fact / 10;
   }
   //finding the first digit
   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

更新日期:2019年10月3日

235 次浏览

开启您的 职业生涯

完成课程获得认证

开始
广告