Java上的StackOverflow错误无法看到无限循环?
我正在尝试创建一个程序,该程序可以查找“三角形数”和“星号”的值。然而,我有点困惑,当程序分支到第二个功能等。任何帮助是感激的Java上的StackOverflow错误无法看到无限循环?,java,recursion,stack-overflow,Java,Recursion,Stack Overflow,我正在尝试创建一个程序,该程序可以查找“三角形数”和“星号”的值。然而,我有点困惑,当程序分支到第二个功能等。任何帮助是感激的 public class Recursion { public static void main(String[] args) { // TODO Auto-generated method stub int count =0; int n = 1;
public class Recursion {
public static void main(String[] args) {
// TODO Auto-generated method stub
int count =0;
int n = 1;
int t=0;
int triangularNumber =0;
while (n<Integer.MAX_VALUE)
{
t = isTriangularNumber(n,count,triangularNumber);
triangularNumber=0;
int starNumber= ((6*n)*(n-1)) + 1;
if (starNumber ==t)
{
System.out.println(t);
}
n++;
}
if (n==Integer.MAX_VALUE)
{
System.exit(0);
}
}
public static int isTriangularNumber(int n, int count, int triangularNumber)
{
triangularNumber =triangularNumber + (n-(n-count));
if (count<=n)
{
return isTriangularNumber(n,(count++), triangularNumber);
}
else return triangularNumber;
}
}
公共类递归{
公共静态void main(字符串[]args){
//TODO自动生成的方法存根
整数计数=0;
int n=1;
int t=0;
int triangularNumber=0;
而
在上述调用中
,count++
仅计算为count
。因此,在每次调用中,实际上传递的是count
的未更改值。因此,如果条件为:-
if (count<=n)
在上述调用中
,count++
仅计算为count
。因此,在每次调用中,实际上传递的是count
的未更改值。因此,如果条件为:-
if (count<=n)
return isTriangularNumber(n,(++count), triangularNumber);