• [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); 
    	}	
    }
    
    
    	
    }
    


  • 相关阅读:
    AWS 移动推送到iOS设备,Amazon Pinpoint
    iOS 上架注意
    iOS 开发笔记
    TestFlight 测试
    iOS UI基础-21 WKWebView
    Parallels Desktop 重装系统
    Xcode8.2 继续使用插件
    iOS JSPatch 热修复使用
    Mac 配置环境变量
    Mac 安装 JDK
  • 原文地址:https://www.cnblogs.com/muyuge/p/6152523.html
Copyright © 2020-2023  润新知