一些被测试的数字将导致10000位的阶乘,因此计算这一数字以找到尾随的零似乎是不可能的。如何在不计算阶乘的情况下找到尾随零的数量。
long sum = 1;
for (int i = 1; i < n+1; i++) {
sum *= i;
}
char[] length = String.valueOf(sum).toCharArray();
int count = 0;
for (int i = length.length-1; i > 0; i--) {
if (length[i] == '0')
count++;
if (length[i] != '0')
break;
}
return count;
}
我确实相信解决方案是(不包括整数溢出):
public static int zerosFactorialTrailing(int n) {
int fives = 0;
for (int i = 5; i <= n; i *= 5) {
fives += n / i;
}
/*
* There are always more twos than fives
*
int twos = 0;
for (int i = 2; i <= n; i *= 2) {
twos += n / i;
}
return Math.min(twos, fives);
*/
return fives;
}
问题内容: 我尝试使用for循环和double数据类型以典型方式找到大量的阶乘,例如8785856。 但是结果显示无限大,可能是因为它超出了其极限。 因此,请引导我找到大量乘数的方法。 我的代码: 输出:- 我是Java的新手,但已经学习了IO处理的所有概念。 问题答案:
问题内容: 我正在尝试计算阶乘产生的数字的尾随零(这意味着数字变得很大)。以下代码采用一个数字,计算该数字的阶乘,并计算尾随零。但是,当数字大约为25!时,numZeros将不起作用。 我并不担心这段代码的效率,并且我知道有多种方法可以使这段代码的效率更好。我要弄清楚的是为什么计数大于25的数字结尾的零!不管用。 有任何想法吗? 问题答案: 您的任务不是计算阶乘,而是计算零的数量。一个好的解决方案
我试图计算阶乘中尾随零的数量。 我认为尾随零的数量不正确。 使用计数(30)时,30中有7个尾随的0。然而,它正在返回6。
我如何使程序执行一个新的或重复的操作,或要求用户再次输入一个数字,并知道它的阶乘。
我试图计算给定数字的阶乘中尾随零的数量,例如。, ,其中尾随零 ,其中尾随零 我的问题是,我有一个像df这样的数据帧 我知道R中的阶乘是用来计算阶乘的,但我不知道如何计算尾部的零。任何帮助都将不胜感激!
我需要计算特定数字的计数(介于0之间 这适用于小数字输入:7 0输出:2描述:7!=5040有两个零,但对于大数字需要很长时间输入: