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