JAVA RECURSION的程序
publicclassDownTriRec{publicstaticvoidmain(Stringargs[]){downTriN(3);}publicstaticvoi...
public
class DownTriRec{ public static void main(String args [ ])
{downTriN(3);
}
public static void downTriN(int n )
{if(n == 1){
printNStars(1);
}else{
downTriN(n+2);
printNStars(n+1); } }
public static void
printNStars(int n)
{String res = "";for(int j = 0; j<n; j++)
{ res =
res+"*";}
IO.outputStringAnswer(res);
}}
关于这个程序是自动排列
***
**
*
但是downTriN(n+2);
printNStars(n+1); 我不知道怎么改好,希望高手帮我解决下,谢谢 展开
class DownTriRec{ public static void main(String args [ ])
{downTriN(3);
}
public static void downTriN(int n )
{if(n == 1){
printNStars(1);
}else{
downTriN(n+2);
printNStars(n+1); } }
public static void
printNStars(int n)
{String res = "";for(int j = 0; j<n; j++)
{ res =
res+"*";}
IO.outputStringAnswer(res);
}}
关于这个程序是自动排列
***
**
*
但是downTriN(n+2);
printNStars(n+1); 我不知道怎么改好,希望高手帮我解决下,谢谢 展开
展开全部
不太明白你的意思,你想排列的是什么?就是星吗?
还有你这个程序是个无限调用自身的没有结束的程序。就是你的downTriN(int n )方法,大致就是形参为1就会执行printNStars(1); 形参不为1就会执行downTriN(n+2); 那么形参下一次调用自己的话形参会往上加2.也就是说如果输入downTriN(int n )方法的参数大于1或者进行n次+2都不能等于1的话,你的这个方法会无止境的调用自身,而每次运行到downTriN(n+2);时调用自己的话那么,downTriN(n+2);之后的printNStars(n+1);是永远也不会运行的。
还有什么不明白的可以继续问。
还有你这个程序是个无限调用自身的没有结束的程序。就是你的downTriN(int n )方法,大致就是形参为1就会执行printNStars(1); 形参不为1就会执行downTriN(n+2); 那么形参下一次调用自己的话形参会往上加2.也就是说如果输入downTriN(int n )方法的参数大于1或者进行n次+2都不能等于1的话,你的这个方法会无止境的调用自身,而每次运行到downTriN(n+2);时调用自己的话那么,downTriN(n+2);之后的printNStars(n+1);是永远也不会运行的。
还有什么不明白的可以继续问。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询