黑马程序员JAVA编程阶梯:基础篇之第二十三章(3)

2020-02-21 18:28

10

11 private static int getFibo(int i) { 12 if (i == 1 || i == 2) 13 return 1; 14 else

15 return getFibo(i - 1) + getFibo(i - 2); 16 } 17

18 public static void main(String[] args) {

19 System.out.println(\一年内繁殖的兔子数:\20 for (int j = 1; j <= 12; j++) {

21 System.out.print(getFibo(j) + \22 if (j % 5 == 0)

23 System.out.println(); 24 } 25 } }

?

递归练习(1000的阶乘所有零和尾部零的个数)

需求:求出1000的阶乘所有零和尾部零的个数,不用递归做 [Java] 纯文本查看 复制代码 ?

黑马程序员济南中心 编著

01 /**

02 * 求出1000的阶乘所有零和尾部零的个数,不用递归做 因为1000的阶乘远远超出了int的取值范围所以要03 到大整数 04 *

05 * @author Somnus 06 * 07 */

08 public class Demo { 09

10 public static void main(String[] args) { 11 demo1();// 求1000的阶乘中所有的零 12 demo2();// 获取1000的阶乘尾部有多少个零 13 } 14

15 public static void demo1() {

16 BigInteger bigger1 = new BigInteger(\17 for (int i = 1; i <= 1000; i++) {

18 BigInteger bigger2 = new BigInteger(i + \

19 bigger1 = bigger1.multiply(bigger2); // 将bigger1与bigger2相乘的结果赋值给bigg20 }

21 String str = bigger1.toString(); // 获取字符串表现形式 22 int count = 0;

黑马程序员济南中心 编著

23 for (int i = 0; i < str.length(); i++) {

24 if ('0' == str.charAt(i)) { // 如果字符串中出现了0字符 25 count++; // 计数器加1 26 } 27 }

28 System.out.println(count); 29 } 30

31 public static void demo2() {

32 BigInteger bigger1 = new BigInteger(\33 for (int i = 1; i <= 1000; i++) {

34 BigInteger bigger2 = new BigInteger(i + \35 bigger1 = bigger1.multiply(bigger2); 36 }

37 String str = bigger1.toString();

38 StringBuilder sb = new StringBuilder(str); 39 str = sb.reverse().toString(); 40

41 int count = 0; // 定义计数器 42 for (int i = 0; i < str.length(); i++) { 43 if ('0' != str.charAt(i)) { 44 break;

黑马程序员济南中心 编著

45 } else { 46 count++; 47 } 48 } 49

50 System.out.println(count); 51 } }

?

递归练习(1000的阶乘尾部零的个数)

需求:求出1000的阶乘尾部零的个数,用递归做 [Java] 纯文本查看 复制代码 ? 01 /**

02 * 求出1000的阶乘尾部零的个数,用递归做 03 *

04 * @author Somnus 05 * 06 */

07 public class Demo { 08

黑马程序员济南中心 编著

09 public static void main(String[] args) {

10 System.out.println(getLastCount(getSum(1000))); 11 } 12

13 public static BigInteger getSum(int n) { 14 if (n == 1) {

15 return new BigInteger(\16 } else { 17

18 BigInteger sum = new BigInteger(n + \19 return sum.multiply(getSum(n - 1)); 20 } 21 } 22

23 public static int getLastCount(BigInteger sum) { 24 int count = 0;

25 String s = sum.toString();

26 StringBuffer sb = new StringBuffer(s); 27 String s1 = sb.reverse().toString(); 28 for (int i = 0; i < s1.length(); i++) { 29 if ('0' == s1.charAt(i)) { 30 count++;

黑马程序员济南中心 编著


黑马程序员JAVA编程阶梯:基础篇之第二十三章(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高考历史冲刺押题小题训练(选择题)3(含解析)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: