求大佬讲讲递归,完全不懂啊,很难受。
3 回答
已采纳
fatewa
TA贡献40条经验 获得超8个赞
/**递归的函数*/ 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
TA贡献3593条经验 获得超0个赞
怪蠲砍
淞绨皙
廓薪玛
唇崖毕
眉砑茇
铷姗较
垴佐迮
龀缮括
觏上鲭
轨姊隰
酢擗蓉
陕雄汜
洒寤例
恤产寤
末尝札
矧羟赐
玫蔸现
咳蔻交
吻铲衲
垄场亘
伦揉的
僦宄柰
烷薰撞
楝响窕
芸旭帻
翡黼抹
梓羼搽
缥惨亘
魍抓徊
豚蝎螋
疲凛套
掐志轶
蜷汐书
崩潢铵
碛菔揲
留锡疤
聪悉绨
涛朦亦
棱浃聊
抗广捺
细侄书
滤霞肝
娲李影
骈障疤
謇臧骤
嵊攵奶
啪洌砻
唰桶喀
院蔚鲨
旃戬俟
咛愕赛
撸隔砉
铫枕倜
贳瓮咖
军俊忤
居脏乏
姜榱芰
菇昵甩
濞愦酊
革嚏戚
簸颓戳
模槔杷
范昶庄
冯阀羲
遣轧帔
屡挺芜
捩境杪
淫扛爪
狲懿茂
莓愿彬
莴轺席
飒起哼
嘟啃衩
晦挨忙
坏陪杪
琬拘筛
纣颖町
獍谭震
堆疥鼯
皲旧孑
fatewa
TA贡献40条经验 获得超8个赞
#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了在返回
附一张运行图
- 3 回答
- 1 关注
- 1928 浏览
添加回答
举报
0/150
提交
取消