【Java基础】递归方法

1.计算1-n之间所有自然数的和

public int getSum(int n){
if (n==1){
return 1;
}else {
return n+getSum(n-1);
}
}

2.计算1-n之间所有自然数的乘积,即n的阶乘:n!

public int getMultiply(int n){
if (n==1){
return 1;
}
return n*getMultiply(n-1);
}

3.已知一个数列

已知一个数列:f(0) = 1,f(1) = 4,f(n+2)=2×f(n+1) + f(n),
其中n是大于0的整数,求f(10)的值。
直接return f(n+2)-2×f(n+1)是错的,会报栈溢出。

设n+2 = t
f(n+2) = 2×f(n+1) + f(n),转化为
f(t) = 2×f(t-1)+f(t-2)

public int getFTen(int n){
if (n==0){
return 1;
}else if (n==1){
return 4;
}else {
return 2*getFTen(n-1)+getFTen(n-2);
}
}
posted @   植树chen  阅读(80)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示