第一个方法是计算出阶乘然后计算字符串的0的个数。
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
import java.util.Scanner;
import java.math.BigDecimal;
import java.text.DecimalFormat;
public class jc{
public static void main(String args[]){
Scanner reader = new Scanner(System.in);
DecimalFormat a = new DecimalFormat( "#" );
int num;
num = reader.nextInt();
double sum= 1 ;
for ( int i= 2 ;i<=num;i++){
sum*=i;
}
//System.out.println(sum);
//System.out.println(cal_the_number_of_zero(sum+""));
System.out.println(a.format(sum));
System.out.println(cal_the_number_of_zero(a.format(sum)));
}
public static int cal_the_number_of_zero(String str){
int num= 0 ;
for ( int i= 0 ;i<str.length();i++){
if (str.charAt(i)== '0' ){
num++;
}
else {num= 0 ;}
}
return num;
}
}
|
但是当数字很大时,上面那种方法就不能计算出来了。于是我们可以利用数学方法来计算。
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int ret = 0 ;
for ( int i=n;i>= 5 ;i--){
int tmp =i;
while (tmp% 5 == 0 ){
ret++;
tmp=tmp/ 5 ;
}
}
System.out.println(ret);
}
}
|
https://www.nowcoder.com/questionTerminal/6ffdd7e4197c403e88c6a8aa3e7a332a
到此这篇关于Java两种方法计算出阶乘尾部连续0的个数的文章就介绍到这了,更多相关Java 阶乘尾部连续0的个数内容请搜索快网idc以前的文章或继续浏览下面的相关文章希望大家以后多多支持快网idc!
原文链接:https://blog.csdn.net/qq_36045898/article/details/115001582
相关文章
猜你喜欢
- ASP.NET本地开发时常见的配置错误及解决方法? 2025-06-10
- ASP.NET自助建站系统的数据库备份与恢复操作指南 2025-06-10
- 个人网站服务器域名解析设置指南:从购买到绑定全流程 2025-06-10
- 个人网站搭建:如何挑选具有弹性扩展能力的服务器? 2025-06-10
- 个人服务器网站搭建:如何选择适合自己的建站程序或框架? 2025-06-10
TA的动态
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
您的支持,是我们最大的动力!
热门文章
-
2025-05-25 44
-
2025-05-25 17
-
2025-05-25 22
-
2025-05-25 22
-
2025-05-29 99
热门评论