黑马程序员技术交流社区

标题: 【成都校区】JAVA小练习 [打印本页]

作者: 1581750802    时间: 2018-11-22 12:58
标题: 【成都校区】JAVA小练习
[Java] 纯文本查看 复制代码
package com.heima.employee.restday.demo02;

/**
*【程序4】
* 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
*/
/**
* @author NOT ME
* @description 递归练习题demo02第四题
* @create 2018/11/15 0015下午 4:52
*/
public class Coder04 {
    static StringBuilder sb = new StringBuilder();

    public static void main(String[] args) {
        StringBuilder tempSb = new StringBuilder();
        int num = 100000000;
        String s = printNum(num);
        char[] chars = s.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            if (i == chars.length - 1) {
                break;
            }
            tempSb.append(chars);
        }
        System.out.println(num + "=" + tempSb.toString());
    }

    /**
     * 先计算出最小的质数,然后再对num除以i的商进行递归。
     * @param num 正整数
     * @return: String 字符串
     * @Date: 2018/11/15 0015 下午 8:08
     */
    private static String printNum(int num) {
        // 先求出最小的质数,然后再进行递归
        for (int i = 2; i <= num; i++) {
            if (num % i == 0) {
                // 最小的质数,不再向下进行循环,再对num除以i的商进行递归。
                sb.append(i).append("*");
                int consult = num / i;
                printNum(consult);
                break;
            }
        }
        return sb.toString();
    }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2