黑马程序员技术交流社区

标题: 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5 [打印本页]

作者: 莫盛强    时间: 2015-12-2 15:47
标题: 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5
本帖最后由 莫盛强 于 2015-12-2 16:00 编辑
  1. import java.util.Scann
复制代码

作者: 莫盛强    时间: 2015-12-2 16:00
  1. import java.util.Scanner;

  2. public class Test56 {
  3.         public static void main(String[] args) {
  4.                 Scanner sc = new Scanner(System.in);
  5.                 System.out.println("输入数字:");
  6.                 int in = sc.nextInt();
  7.                 StringBuilder sb = new StringBuilder();
  8.                 int count = 0;
  9.                 String str = method(sb, in,count);
  10.                 System.out.println(in + "=" + str);
  11.         }

  12.         private static String method(StringBuilder sb, int in,int count) {

  13.                 for (int i = 2; i <= in; i++) {
  14.                         if (in % i == 0) {
  15.                                 count++;
  16.                                 if (i == in) {
  17.                                         sb.append(i);
  18.                                         break;
  19.                                 } else {
  20.                                         in = in / i;
  21.                                         sb.append(i).append("*");
  22.                                         return method(sb, in,count);
  23.                                 }
  24.                         }
  25.                 }
  26.                 if (count == 1) {
  27.                         sb.append("*").append(1);
  28.                 }
  29.                 return sb.toString();
  30.         }
  31. }
复制代码

作者: anuo    时间: 2015-12-3 09:32
楼主,里面有个sb是做什么用的,没看懂
作者: 莫盛强    时间: 2015-12-3 11:06
anuo 发表于 2015-12-3 09:32
楼主,里面有个sb是做什么用的,没看懂

StringBuilder和StringBuffer都是字符缓冲区。前者不安全,后者安全。里面有append()方法,这里解决了90=2*3*3*5格式的拼接。
作者: 1158147908    时间: 2015-12-7 23:30
这个题目好有技术水平呀




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