java怎么计算递归次数(递归最大递归次数)
如何计算递归调用的次数
可以在调用自己之外定义一个静态变量,在自调中间让他++,每一次可以通过查看静态变量来看调用次数。也可以if判断确定自调次数。

java递归问题
用map,key就是你的a1,a2,a3,value就是你的值
递归写的时候就可以取key和value了
java程序中如何统计递归次数
给你个汉诺塔的例子
public?class?$?{
????private?static?int?count;
????public?static?void?main(String...?_)?{
????????test('A',?'B',?'C',?3);
????????System.out.println("递归次数:"?+?count);
????}
????private?static?void?test(char?a,?char?b,?char?c,?int?n)?{
????????count++;
????????if?(n?==?1)?{
????????????move(b,?c);
????????????return;
????????}
????????test(c,?b,?a,?n?-?1);
????????move(b,?c);
????????test(b,?a,?c,?n?-?1);
????}
????private?static?void?move(char?a,?char?b)?{
????????System.out.println(a?+?"=="?+?b);
????}
}
我是学java的,谁能给我说说递归算法是怎么算来着,最好给个例子,给个看得懂的,简单一点的,
递归就是不断的调用其自身,直到满足某一个特定条件之后,才不再调用自身这个方法,有点类似于do...while循环,比如说计算1到10的和,写成一个do...while如Help的doWhile()类方法,写成递归就是先写一个方法,然后在需要的地方,调用这个方法就是了。这里的递归方法是leiJia(),调用是在main里面的leiJia(10)这里,代码如下:
public?class?Help?{
public?static?void?main(String[]?args)?{
doWhile();
System.out.println("sum?=?"?+?leiJia(10));
}
public?static?void?doWhile()?{
int?i?=?1,?sum?=?0;
do?{
sum?+=?i;
}?while?(i++??10);
System.out.println("sum?=?"?+?sum?+?",?i?=?"?+?i);
}
public?static?int?leiJia(int?number)?{
if?(number?==?1)?{
return?1;
}?else?{
return?number?+?leiJia(number?-?1);
}
}
}
如何计算递归函数的调用次数
#includestdio.h
int?max=0;//计次
int?factorial(int?n){
int?sum=0;
if(n==1)?sum=1;
else?sum=factorial(n-1)*n
max++;
return?sum
}
void?main(){
//列出5的阶乘,调用了几次函数体
factorial(5);
printf("%d",max);
}
步骤:在函数体外创建一个全局变量,然后在函数体内调用,使该变量
当条件满足时即+1。最后输出该变量就是调用次数。
下面列出C的例子(求n的阶乘):
总结:使用全局变量。当然,你也可以函数中定义一个静态变量,然后每次调用函数递增1
不过后者的话,如果要在其他函数中获得此函数的调用次数会比较麻烦!