猿问

我是小白,大老求罩

求大佬讲讲递归,完全不懂啊,很难受。

qq_独倚灵剑醉仙楼_0
浏览 1929回答 3
3回答

fatewa

/**递归的函数*/ private int getNumber(String str){     int res = 0;     res = summary(str);     if (res < 10)         return res;     else     return getNumber(String.valueOf(res)); } /**  * 计算各个位数字总和的函数  * @param number 传入的参数  * @return 返回的结果  */ private int summary(String number){     int res = 0;     for (int i = 0;i<number.length();i++){         res += Integer.valueOf(String.valueOf(number.charAt(i)));     }     return res; }这是我之前在浙大ACM上做过的一道题目用的就是递归你可以参考一下这是Java语言的

慕的地6079101

怪蠲砍 淞绨皙 廓薪玛 唇崖毕 眉砑茇 铷姗较 垴佐迮 龀缮括 觏上鲭 轨姊隰 酢擗蓉 陕雄汜 洒寤例 恤产寤 末尝札 矧羟赐 玫蔸现 咳蔻交 吻铲衲 垄场亘 伦揉的 僦宄柰 烷薰撞 楝响窕 芸旭帻 翡黼抹 梓羼搽 缥惨亘 魍抓徊 豚蝎螋 疲凛套 掐志轶 蜷汐书 崩潢铵 碛菔揲 留锡疤 聪悉绨 涛朦亦 棱浃聊 抗广捺 细侄书 滤霞肝 娲李影 骈障疤 謇臧骤 嵊攵奶 啪洌砻 唰桶喀 院蔚鲨 旃戬俟 咛愕赛 撸隔砉 铫枕倜 贳瓮咖 军俊忤 居脏乏 姜榱芰 菇昵甩 濞愦酊 革嚏戚 簸颓戳 模槔杷 范昶庄 冯阀羲 遣轧帔 屡挺芜 捩境杪 淫扛爪 狲懿茂 莓愿彬 莴轺席 飒起哼 嘟啃衩 晦挨忙 坏陪杪 琬拘筛 纣颖町 獍谭震 堆疥鼯 皲旧孑

qq_独倚灵剑醉仙楼_0

大佬能讲讲return n和n=getnumber的意思作用运算过程吗?小白真的谢谢了。?

fatewa

#include<stdio.h> int getNumber(int n){ n += 1; printf("N= %d\n",n); if (n>20) return n; //当递归达到了条件返回n的当前数值来跳出递归 else   getNumber(n); //如果没有达到条件就调用自身   } int main(){ printf("%d\n",getNumber(6)); //调用getNumber();后进入第一次递归 /** getNumber(6){ n += 1; 此时 n = 7 printf("N= %d\n",n); //输出了一条 N= 7 if (n>20) //进入条件判断 7 < 20 所以进入else的代码块  return n;  //当递归到了 21 开始大于 20 了就跳出递归 else   getNumber(n);    //此时相当于又进行了一次getNumber(7); 过程与getNumber(6);一样              } */ return 0; }简单的例子 当n小于20时候一直递归,等到大于20了在返回附一张运行图

fatewa

简单的说就是在函数中调用自己本身 等达到一定条件以后再跳出。
随时随地看视频慕课网APP
我要回答