Java上机作业01:斐波那契数列(具体题目:从命令行中输入2个20以内的整数,然后生成一个在输入的两个整数之间的一个随机整数n,打印出前n项Fibonacci数列:1,1,2,3,5,8,13.。。 并统计出这个数列的和是多少。)

博客是真的很方便,有什么不懂可以直接在博客上找,当然找到了,最重要的还是去将代码去理解一下,将不懂的知识弄懂,并转化为自己的才是最终目的。

而我在写该题目最大的难点是不知道怎么取a到b之间的随机数,而我在网上搜了一下,就找到了比较简单理解的,然后转换为我的代码就是:

int n=b-a;//求a~b之间的随机数v,假设:a为5,b为8,此时n=b-a=3

double m=Math.random()*n;//Math.random()的用法就是取0.0~1.0之间的随机数,假设:Math.random()随机取了0.5,n=3,此时那么m=0.5*3=1.5<a=5

int v=(int) m+a;//随机数,m的数据类型double高于int,所以需要强制转换为int,假设:因为v是a~b之间的数,此时m=1.5,故v=m+a=6.5(5<6.5<8),此时a<v<b;

本人Java刚上路,有写的不好的地方,也希望大家能提一下哦!希望我的代码能给大家一点帮助!

import java.util.Scanner;

public class FeiBoNaQie02 {
//1、 从命令行中输入2个20以内的整数,然后生成一个在输入的两个整数之间的一个随机整数n,打印出前n项Fibonacci数列:1,1,2,3,5,8,13.。。
// 并统计出这个数列的和是多少。
//1、要输入两个整数:a,b ✔(代码:12~20)
//2、随机取a~b之间的整数v ✔(代码:22~26)
//3、设计一个斐波那契数列的方法(递归思想) ✔(代码:47~53)
//4、打印出n项斐波那契数列(循环)、打印出v项斐波那契数列的总和(累加)✔(代码:30~45)
public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

System.out.println("请输入最小值(二十以内):");//交互语言

int a = scanner.nextInt();//输入第一个数

System.out.println("请输入最大值(二十以内):");//交互语言

int b = scanner.nextInt(); //输入第二个数

int n=b-a;//求a~b之间的随机数v
double m=Math.random()*n;
int v=(int) m+a;//随机数
System.out.println("随机数为:");
System.out.println(v);

int sum = 0; //记录a项斐波那契数列的和

if (a < b) { //判断输入两个数是否符合要求
System.out.println("斐波那契数列的" +v + "项为:");//交互语言

for (int i = 1; i <= v; i++) { //循环a次

sum = sum + f(i); //通过累加记录a项斐波那契数列的和
System.out.print(f(i) + "\t"); //打印a项斐波那契数列
}
System.out.println(); //换行
System.out.println("斐波那契数列的" + v + "项的总和为:" + sum); //打印斐波那契数列的总和


}else {
System.out.println("输入错误");
}
}

public static int f(int n){ //斐波那契数列,思想:递归;
if (n==1||n==2){
return 1;
}else {
return f(n-1)+f(n-2);
}
}
}

 

 

 

posted @ 2022-07-24 16:39  技术大佬  阅读(248)  评论(0)    收藏  举报