这种方法看似很麻烦,但是比用递归调用要好一点,从系统资源的方面说,他要比递归调用自身的函数要占用更少的空间,递归调用的时候会占用相当的内存来保护现场,之后还要恢复现场,递归函数不是很好的方法!
for循环看上去会有一点点的乱,但写起来还不算麻烦,适当的代码缩进能让程序变得友好,也能很清晰的看出程序运行的结构。
在这里我结合你的想法和递归函数的空间开销,选择了一个还算可以的方法,代码如下:
public class Text {
int function(int max, int sum)
{
for(int i=0;i<=max;i++)
{
sum=sum+i;
System.out.println(sum);
}
return sum;
}
/**
* @param args
*/
public static void main(String[] args) {
int sum=0;
int max=9;
int count=4;
Text demo=new Text();
while(count>=1)
{
sum=demo.function(max, sum);
count=count-1;
}
}
}
具体到你想要的程序中就另当别论了,可以做适当的更改!
因个人能力有限,只能贡献一点微薄的力量,希望对你有用!
如果有什么其他的问题,不妨直接发到信箱,方便能看到你的问题,能和你及时的探讨,共同学习,先谢了!
信箱:yanxiang20006@126.com
for循环控制的是次数,结果这样看就清楚了(3,345,3456).3次循环.
在执行每次外循环时,X都会被重新赋值=2,
第一次外循环,I=3,J=3,X=2,X
OVER 这样就可以了,一步一步来
递归算法要有一个终止条件,一般在程序中以if(....)这样形式给出,在这里我只能用一个普通变量了
可以试试:
int counts=4;
public void function(){
counts--;
if(counts=0)
fun();
else
for(int i=0;i
}
public void fun(){
....
}
如果出现这么多层的嵌套,你要想想这样设计是否合理,应该再明确需求,找出更合理的解决方案
不能