扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
思路:
含山网站制作公司哪家好,找成都创新互联!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。成都创新互联自2013年起到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联。
斐波那契数列
第0项是0,第1项是第一个1。
这个数列从第三项开始,每一项都等于前两项之和。
java代码如下:
import java.util.Scanner;
/**
* 斐波那契数列
第0项是0,第1项是第一个1。
这个数列从第三项开始,每一项都等于前两项之和
* @author young
*
*/
public class Fei {
public static void func(int n) {
if (n 3) {
System.out.println("0,1");
} else if (n 3) {
int a=0, b=1, c=0;
System.out.print(a + " " + b + " ");
for (int i = 3; i = n; i++) {
c = a + b;
a = b;
b = c;
System.out.print(c + " ");
}
} else if (n 0) {
System.out.println("输入数字不符合要求");
}
}
public static void main(String[] args) {
Fei f = new Fei();
Scanner input = new Scanner(System.in);
System.out.print("请输入斐波那契数列的列数n,按ENTER:");
int num = input.nextInt();
System.out.println("斐波那契数列为:" );
func(num);
}
}
运行结果如下:
//这里采用两种方法实现该数列
//第一种方法:用递归调用相加,实现简单,但效率极低
//第二种方法:比第一种略显复杂,但效率高
//------------------------------------------------------------
import java.util.Scanner;
public class Fibonacci {
//方法1:递归方式
public static long getFibonacci1(long count){
if(count=1){
return 1;
}
return getFibonacci1(count-1) + getFibonacci1(count-2);//递归调用
}
//方法2:非递归方式,复杂一点,但效率比方法1高
public static long getFibonacci2(long count){
if(count=1){
return 1;
}
long temp = 0;
long prev = 1;
long next = 1;
for (long i = 2; i =count; i++) {
temp = prev+next;
prev = next;
next = temp;
}
return temp;
}
public static void main(String[] args) {
System.out.println("请输入你要列出的项数,以回车结束:");
//控制台输入
Scanner s = new Scanner(System.in);
//输入的项数
int inputNum = s.nextInt();
System.out.println("得出斐波那契数列前"+inputNum+"项如下:");
for (long i = 0; i inputNum; i++) {
//方式1
//System.out.prlong(getFibonacci1(i)+" ");
//方式2
System.out.print(getFibonacci2(i)+" ");
}
}
}
流程图如下:
public int Fibonacci(int n) {
int[] res = {0, 1};
if(n 2) {
return res[n];
}
int first = 0;
int second = 1;
int fibn = 0;
for(int i = 2; i = n; i++) {
fibn = first + second;
first = second;
second = fibn;
}
return fibn;
}
public static void main(String[] args) {
System.out.println(Fibonacci(35));
}
public class Fibonacci {
// 能够被显示的最大项
private static final long MAX_TERM_VALUE = 10000;
public void run() {
long fibonacci_1 = 0L;
long fibonacci = 1L;
System.out.println(fibonacci_1);
while (fibonacci MAX_TERM_VALUE) {
System.out.println(fibonacci);
long temp = fibonacci_1 + fibonacci;
fibonacci_1 = fibonacci;
fibonacci = temp;
}
}
public static void main(String[] args) {
new Fibonacci().run();
}
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流