• 1,1,2,3,5,8.....使用java代码输出第N个数字的值是多少


    这里可以直接使用递归来实现该需求:

    需求:

    输入第n个数字,就依此规律输出对应的值

    1、首先要确保输出的是整数,这里方法有很多,可以用正则,也可以用sc.next()

    等 在这里我使用的是hasNextInt();

    代码如下:

    import java.util.Scanner;
    
    /**
     * 使用递归实现1,1,2,3,5,8..... 
     * @ClassName: Math2 
     * @Description: TODO
     * @author: 安生
                优秀的判断力来自经验,但经验来自于错误的判断。
     * @date: 2019年12月17日 下午7:11:52
     */
    
    public class Math2 {
        
        static Scanner sc = new Scanner(System.in);
        
        //确保输入的是整数:
        public static int getInt() {
            System.out.println("请输入整数:");
            while(!sc.hasNextInt()) {
                System.out.println("输入的不是整数,请重新输入:");
                sc.next();
            }
            int num = sc.nextInt();
            return num;
        
        }
        
        public static void main(String[] args) {
            System.out.println(getInt());
        }
        
    
    }

    效果如下:

    2、递归的第一种方法:

    //这里使用long 类型 因为int类型可能会出现脏数据
        public static long test(int n) {
            if(n==0) {
                System.out.println("结束输出");
                return 0;
            }
            if(n==1 || n==2) {
                return 1;
            }
            return test(n-2)+test(n-1);
        }
        
        //1,1,2,3,5,8,13,21
        public static void main(String[] args) {
            long result = 0;
            do {
                result = test(getInt());
                System.out.println(result);
            }while(result!=0);
            
        }

    测试第一种方法的结果如下:

     第二种递归方法:

    public static long test2(int n) {
        long a = 1;
        long b = 1;
        if(n==0) {
            System.out.println("输出结束!");
            return 0;
        }else if(n==1 || n==2) {
            return 1;
        }else {
            for(int i = 0; i<n-2; i++) {
                long tem = 0;
                tem = a;
                a += b;
                b = tem;    
            }
            return a;
        }
    }
        
        //1,1,2,3,5,8,13,21
        public static void main(String[] args) {
            long result = 0;
            do {
                result = test2(getInt());
                System.out.println(result);
            }while(result!=0);
            
        }
        

    测试结果:

  • 相关阅读:
    bmp和Variant的转换
    获得Variant类型
    移去OleContainer的黑边框
    调整Mic音量
    关闭声道
    检测声卡存在
    控制音量及平衡
    显示媒体时间
    显示Audio CD的音轨时间
    显示AVI文件的桢数
  • 原文地址:https://www.cnblogs.com/bichen-01/p/12056586.html
Copyright © 2020-2023  润新知