Java两种方法计算出阶乘尾部连续0的个数
作者:ReganYue 发布时间:2021-09-03 06:04:40
标签:Java,阶乘,尾部0的个数
第一个方法是计算出阶乘然后计算字符串的0的个数。
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;
}
}
但是当数字很大时,上面那种方法就不能计算出来了。于是我们可以利用数学方法来计算。
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
来源:https://blog.csdn.net/qq_36045898/article/details/115001582


猜你喜欢
- View绘制的三大流程,指的是measure(测量)、layout(布局)、draw(绘制) measure负责确定View的测量宽/高,也
- C#代码与javaScript函数的相互调用 问: 1.如何在JavaScript访问C#函数? 2.如何在JavaScript访问C#变量
- Android程序调用本机googlemap,传递起始和终点位置,生成路线图if (wodeweizhiPoint != null) { i
- 之前一篇文章研究完横向二级菜单,发现其中使用了SparseArray去替换HashMap的使用.于是乎自己查了一些相关资料,自己同时对性能进
- view plaincopy to clipboardprint?//手动保存图片 &nbs
- Logback 背景Logback是由log4j创始人设计的另一个开源日志组件,官方网站:http://logback.qos.ch。它当前
- c++智能指针介绍由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete,比如流程太复杂,最终导致没有
- 将通用算法放入具体类(HeapSorter),并将通用算法必须调用的方法定义在接口(HeapSorterHandle)中,从这个接口派生出D
- 我发现网上许多讲解javaweb 项目 SSM(Spring,SpringMVC,Mybatis)配置的时候有些重点没有提到,一下我会贴上一
- Lombok有什么用在我们实体Bean中有大量的Getter/Setter方法以及toString, hashCode等可能不会用到,但是某
- 一、 DataTable转换到List<T>/// <summary> /// TableT
- public class LogHelper { &nbs
- 引入线程是为了减少程序在并发执行时所付出的时空开销。属性:轻型实体。它不拥有系统资源,只是有一点必不可少的、能保证独立运行的资源。独立调度和
- 本文实例讲述了Java计算文本MD5加密值的方法。分享给大家供大家参考,具体如下:java计算文本MD5值,用于加密import java.
- 一、泛型简介1.引入泛型的目的了解引入泛型的动机,就先从语法糖开始了解。语法糖语法糖(Syntactic Sugar),也称糖衣语法,是由英
- 本文实例讲述了C#序列化与反序列化的方法。分享给大家供大家参考。具体分析如下:把“对象”转换为“字节序列”的过程称为对象的序列化。 
- 程序执行需要读取到安全敏感项必需在androidmanifest.xml中声明相关权限请求, 完整列表如下:1. android.permi
- 在许多APP中,有的搜索框是一直固定的,有的呢,附加了很多的效果,就比如京东好吧,谁让京东那么厉害呢,不说了,开始 * !原理:就是自定义sc
- 需要为项目提供一套畸变校正的算法,由于需要大量的矩阵运算,考虑到效率和适时性,使用JNI开发,希望把有关数组短阵的处理的变换全部放入C语言中
- 本文实例讲述了C#中datatable序列化与反序列化,分享给大家供大家参考。具体方法如下:一、datatable序列化public str