feijie(n/i)不太懂

来源:4-14 Java 循环语句之多重循环

chafferers

2016-09-25 12:09

import java.util.Scanner;

public class Math {

public static void fenjie(int n) {

for (int i=2;i <=n;i++) {

if (i == n) {

System.out.print(i);

return;

}

if (n > i && (n % i == 0)) {

System.out.print(i+"*");

fenjie(n / i);

break;

}

}

}

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

System.out.println("请输入一个整数:");

int n = input.nextInt();

fenjie(n);

}

}


写回答 关注

2回答

  • KeT
    2016-09-25 16:38:32
    已采纳

    fenjie(n/i)这个在java中称为方法的递归调用。递归算法设计的基本思想是:对于一个复杂的问题,把原问题分解为若干个相对简单类同的子问题,继续下去直到子问题简单到能够直接求解,也就是说到了递推的出口,这样原问题就有递推得解。看到分解里面的if(n > i && (n % i == 0))语句,这是判断它是否再次调用本身方法,如果你不使用递归的话,你想要达到的分解效果将会使代码很冗杂,不简洁。还有问题欢迎讨论。

  • 一棵根正苗红的娃娃菜
    2016-09-25 13:21:38

    fenjie其实是分解的意思,即分解并输出参数n的因数,n是质数的话只输出它本身,n是合数的话输出 除了1和本身之外 的因数。

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165172 学习 · 17581 问题

查看课程

相似问题