逻辑推理java,[java面试]逻辑推理6 10 18 32 下一个数?编程实现输入任意一个N位置,该数是多少?java实现...

题目: 6 10 18 32 下一个数?编程实现输入任意一个N位置,该数是多少?

10 = 6 + 4         4

18 = 10 + 8        4 + 4

32 = 18 + 14       8 + 6

? = 32 + 22       14 + 8

? = 54 + 32       22 + 10

? = 86 + 44       32 + 12‘

阶梯思路: 分析特点就是

f(x) = f(x-1)+ M;

其中M又是可递归的

4 8 14 22

f(N)=f(N-1)+2*N

f(1) = 4

f(2) = 8

f(3) = 14

f(4) = 22

F(X) = F(X - 1) + F(Y)

F(Y) = F(Y - 1) + 2*Y

F(X) = F(X - 1) + F(Y - 1)+ 2*Y

编程实现

package com.susheng.practice;

public class RecursionTest

{

public static void main(String[] args)

{

RecurverTest0 rt0 = new RecurverTest0();

for (int i = 1; i < 100; i++)

{

System.out.println(rt0.M(i));

}

}

}

class RecurverTest0

{

//二层递归的函数

private int F(int N)

{

//负数不保证

if(0 >= N)

return 0;

if (1 == N)

return 4;

return(F(N-1)+ 2*N);

}

//调用M(N)就可以求出N位置的值

public int M(int N)

{

//负数不保证

if(0 >= N)

return 0;

if(1 == N)

return 6;

return M(N - 1) + F(N - 1);

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值