能给我解释下,我代码里面的 那里面n==1 return 1是什么意思
追答这个是终止条件,就是说你的n的值肯定是要从一个较大的数开始逐渐往下走的,当n的值走到1就说明已经走到最后了,不要往下走了,可以开始返回了。
追问那我下面那段代码写着n==2 结果怎么和上面的一样的呢
追答你在AAA里面写这个对递归调用又没有任何影响。
你在下面写1和2的区别在于,你在main里面调用的时候,如果你的参数是1则给你返回1,你的参数是2则返回2,如果参数不是1和2,那就会执行下面的temp = getSum(sum-1)的程序,而且你会从sum-1开始往下递归,一直到1的时候返回。
4+(4-1)+(3-1)+(2-1)+(1-1)?这样理解对吗?
追答你可以这样理解:
4+(4-1 + (4-2+(4-3)))
先计算最里面的,然后再计算外面的。
哦哦,就是 那里面n==1 return 1不太懂,不能写大于0吗
追答如果你写n>0,那你只能得到结果为1的值,因为你的参数只要是大于0的,就直接返回1,后面的程序都不会执行了。当然,如果你不解,你也可以改成大于0,然后自己跑一下程序看看结果就知道了。
追问我试了下 那个条件里面写 n==1 & n<=1 输出都正常哦 为何n<=1 可以的呢
追答这个是条件的判断啊。
要两个条件都满足的话,当n等于1的时候不是正好两个条件都满足了吗??满足这个条件之后,就不用继续往下执行了,当然结果都正常的啦。
哦哦,我一直把他当成条件语句判断了😏
追答是个条件啊,是程序终止的条件的嘛,只是程序到这里肯定得终止,要是没有终止程序的方法,那就要死循环了。
那里面n==1 return 1是什么意思
追答就是递归的退出条件。
比如数学中的 函数是这样表述的
{ 1 n=1;
f(n)={
{ f(n-1)+n n>1