- .获得用户的输入
- 计算
- 3打印就行了。
这里用到了java.util.Scanner 具体API
我就觉得不常用。解决问题就ok了。注意的是:他们按照流体的方式读取。而不是刻意反复读取
自己写的代码:
package com.itheima; import java.util.Scanner; public class Test3 { /** * 3.求斐波那契数列第n项,n<30,斐波那契数列前10项为 1,1,2,3,5,8,13,21,34,55 * * @author zhulang * @param args */ public static void main(String[] args) { /* * 1.获得用户的输入 * 2.计算 * 3.打印就行了。 */ int fibX = 1; int fibY = 1; int fibZ= 0; int n = 0 ; //用来接收用户要求的项数 //接受用户的输入 n = getN(); if(n==1||n==2) { System.out.println("你要求斐波那契数列第"+n+"列的值为:->1"); } else { // 计算N>2的项的斐波那契数列的值 for (int i = 1; i <=n-2; i++) { //用最简单的算法实现。 fibZ = fibX+fibY; fibX = fibY; fibY = fibZ; } System.out.println("你要求斐波那契数列第"+n+"列的值为->"+fibZ); } } /** * 接受用户正确输入用户 . 这里我查资料查了一会儿。java.util.Scanner我觉得不常用。要是不是因为黑马。我几乎不会 * @return 用户的正确输入 */ private static int getN() { int n; System.out.println("提示:请输入求斐波那契数列第n项的值。"); Scanner sc = new Scanner(System.in); //让用户反复输入。直到输入成功为止 while (!sc.hasNextInt()|| (n=sc.nextInt())>=30) { System.out.println("输入错误:请输入求斐波那契数列小于第30项的正整数。"); sc = new Scanner(System.in); } return n; } }