public class Cs3 {
private int value;
private String result = "1*"; public String getResult() {
return result;
} public Cs3(int value) {
this.value = value;
} public void simpls() { for (int i = 2; i < value; i++) {
if (value % i == 0) {
value = value / i;
result += i + "*";
simpls();
} }
result += value; } public static void main(String[] args) {
Cs3 r = new Cs3(40);
r.simpls();
System.out.print(r.getResult());
} }//结果是1*2*2*2*5555 ;
//后面为什么那么多5?
private int value;
private String result = "1*"; public String getResult() {
return result;
} public Cs3(int value) {
this.value = value;
} public void simpls() { for (int i = 2; i < value; i++) {
if (value % i == 0) {
value = value / i;
result += i + "*";
simpls();
} }
result += value; } public static void main(String[] args) {
Cs3 r = new Cs3(40);
r.simpls();
System.out.print(r.getResult());
} }//结果是1*2*2*2*5555 ;
//后面为什么那么多5?
public void simpls() {
for(int i = 2; i < value; i++) {
if (value % i == 0) {
value = value / i;
result += i + "*";
i = 2;
}
}
result += value;
}
不太明白楼主的simpls方法是干什么的
public void simpls() {
for(int i = 2; i < value; i++) {
if (value % i == 0) {
value = value / i;
result += i + "*";
i = 2;
}
}
result += value;
}
貌似3层
最里面一层将1*2*2*2*输出了
外面两层将那4个5输出了,应为后面两层不满足for条件了只执行了result += value;
public void simpls() {
--------------------------------第一层
for (int i = 2; i < value; i++) {
if (value % i == 0) {
value = value / i;
result += i + "*";
---------------------------------------第2层
public void simpls() {
for (int i = 2; i < value; i++) {
if (value % i == 0) {
value = value / i;
result += i + "*";
-----------------------------------------第3层
public void simpls() {for (int i = 2; i < value; i++) {
if (value % i == 0) {
value = value / i;
result += i + "*";
simpls();
}}
result += value;}
-------------------------------
} }
result += value; }
------------------------------------------- } }
result += value;}
你的是递归调用,调用到最内层的时候value=5;
然后就是返回了,但是每次返回都会调用这句话result += value;
你调用的深度是4个所以返回的时候就进行了4次result += value;
所以结果后面有4个5了。你可以看这个流程图simpls(){
simpls(){
simpls(){
simpls(){
result += value;
}
result += value;
}
result += value;
}
result += value;
}这样就清楚了吧。