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("請(qǐng)輸入一個(gè)整數(shù):");
int n = input.nextInt();
fenjie(n);
}
}
2016-09-25
fenjie(n/i)這個(gè)在java中稱為方法的遞歸調(diào)用。遞歸算法設(shè)計(jì)的基本思想是:對(duì)于一個(gè)復(fù)雜的問(wèn)題,把原問(wèn)題分解為若干個(gè)相對(duì)簡(jiǎn)單類(lèi)同的子問(wèn)題,繼續(xù)下去直到子問(wèn)題簡(jiǎn)單到能夠直接求解,也就是說(shuō)到了遞推的出口,這樣原問(wèn)題就有遞推得解??吹椒纸饫锩娴膇f(n > i && (n % i == 0))語(yǔ)句,這是判斷它是否再次調(diào)用本身方法,如果你不使用遞歸的話,你想要達(dá)到的分解效果將會(huì)使代碼很冗雜,不簡(jiǎn)潔。還有問(wèn)題歡迎討論。
2016-09-25
fenjie其實(shí)是分解的意思,即分解并輸出參數(shù)n的因數(shù),n是質(zhì)數(shù)的話只輸出它本身,n是合數(shù)的話輸出 除了1和本身之外 的因數(shù)。