importjava.math.BigInteger;public classdiguilianxi {public static voidmain(String[] args) {
BigInteger num= new BigInteger("50");//System.out.println("递归数为:" + num.toString());
String diguiResult=digui(num).toString();
System.out.println("递归结果为:" +diguiResult);
System.out.print("求一共包含多少個零:"+AllZero(diguiResult)+"个"+'\n');//System.out.println("反转后的结果为:"+reverString(diguiResult));
System.out.print("結尾包含多少個零:"+TailZero(diguiResult)+"个");
}public staticBigInteger digui(BigInteger i) {//System.out.println(i.toString());//先判断递归结束条件 入参 i==1
if(BigInteger.ONE.equals(i)) {returni;
}//求阶乘
returni.multiply(digui(i.subtract(BigInteger.ONE)));
}public staticInteger AllZero(String diguiResult) {
System.out.println("=============求一共包含多少個零===========");int count = 0;for(int i=0;i
count++;
}
}returncount;
}public staticInteger TailZero(String string) {
System.out.println("=============結尾包含多少個零===========");//求全部的0
int count = 0;
String resString=reverString(string);
System.out.println("反转后输出为:"+resString);for(int i=0;i
count++;
}else{break;
}
}returncount;
}public staticString reverString(String sourceString){
String tarSource="";int length=sourceString.length();for(int i=0;i
tarSource=sourceString.charAt(i)+tarSource;
}returntarSource;
}
}
踩过的坑:
1.Java中 ==和equal的区别
== 表示 对内存地址进行比较,equals()表示 对字符串的内容进行比较
2.Java中单引号和双引号的区别
(1) 单引号引的数据 是char类型的,双引号引的数据 是String类型的;
(2)单引号只能引一个字符,而双引号可以引0个及其以上。
(3)char只是一个基本类型,而String 可以是一个类,可以直接引用。
比如char c='c';不能直接对c调用方法。
String s="abc"; 这时可以调用s.charAt(0);等方法,因为String是类,这是就是对象的调用了
来源:https://www.cnblogs.com/zhangzs000/p/4519001.html
3.java中bigdecimal转换成string
BigDecimal bd=new BigDecimal("123");
String OutString=bd.toString();
System.out.println(OutString);