为了账号安全,请及时绑定邮箱和手机立即绑定

feijie(n/i)不太懂

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 回答

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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第一季(IDEA工具)升级版
  • 参与学习       1165454    人
  • 解答问题       17585    个

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

进入课程

feijie(n/i)不太懂

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信