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("請輸入一個整數(shù):");
int n = input.nextInt();
fenjie(n);
}
}
2016-09-25
fenjie(n/i)這個在java中稱為方法的遞歸調用。遞歸算法設計的基本思想是:對于一個復雜的問題,把原問題分解為若干個相對簡單類同的子問題,繼續(xù)下去直到子問題簡單到能夠直接求解,也就是說到了遞推的出口,這樣原問題就有遞推得解。看到分解里面的if(n > i && (n % i == 0))語句,這是判斷它是否再次調用本身方法,如果你不使用遞歸的話,你想要達到的分解效果將會使代碼很冗雜,不簡潔。還有問題歡迎討論。
2016-09-25
fenjie其實是分解的意思,即分解并輸出參數(shù)n的因數(shù),n是質數(shù)的話只輸出它本身,n是合數(shù)的話輸出 除了1和本身之外 的因數(shù)。