斐波那契數列java
㈠ 1)java實現計算斐波那契數列第n項值的方法.
其實就是一個遞歸演算法,如下:
public class Test {
public static void main(String[] args) {
System.out.println(f(6));
}
public static int f(int n){
if(n==1||n==2){
return 1;
}else{
return f(n-1)+f(n-2);
}
}
}
㈡ JAVA大神求教,斐波那契數列大家都非常熟悉
publicclassFibonacci{
publicstaticvoidmain(String[]args){
show1();////定義數組方法
show2();//使用遞歸方法
show3();//定義三個變數方法
}
//方法1:定義數組方法
privatestaticvoidshow1(){
intarr[]=newint[20];
arr[0]=arr[1]=1;
for(inti=2;i<arr.length;i++){
arr[i]=arr[i-1]+arr[i-2];
}
System.out.println("斐波那契數列的前20項如下所示:");
for(inti=0;i<arr.length;i++){
if(i%5==0)
System.out.println();
System.out.print(arr[i]+" ");
}
}
//方法2:使用遞歸方法
publicstaticvoidshow2(){
System.out.println(" 斐波那契數列的前20項為:");
for(intj=1;j<=20;j++){
System.out.print(getFibo(j)+" ");
if(j%5==0)
System.out.println();
}
}
privatestaticintgetFibo(inti){
if(i==1||i==2)
return1;
else
returngetFibo(i-1)+getFibo(i-2);
}
//方法3:定義三個變數方法
privatestaticvoidshow3(){
inta=1,b=1,c=0;
System.out.println(" 斐波那契數列前20項為:");
System.out.print(a+" "+b+" ");
//因為前面還有兩個1、1所以i<=18
for(inti=1;i<=18;i++){
c=a+b;
a=b;
b=c;
System.out.print(c+" ");
if((i+2)%5==0)
System.out.println();
}
}
}
㈢ 用JAVA數組來求斐波那契數列前20項: 1 1 2 3 5 8 ….
publicclassDemo{
publicstaticvoidmain(String[]args){
intn=20;
intsum=0;
for(inti=1;i<=n;i++){
System.out.print(fibo(i)+" ");
sum+=fibo(i);
}
System.out.println(" 菲波那契數列的前20項和為:"+sum);
}
privatestaticintfibo(intn){
if(n==1)
return1;
if(n==2)
return1;
returnfibo(n-1)+fibo(n-2);
}
}
數組法:
publicclassDemo{
publicstaticvoidmain(String[]args){
int[]array=newint[20];
array[0]=1;
array[1]=1;
intsum=0;
for(inti=2;i<array.length;i++){
array[i]=array[i-1]+array[i-2];
}
//遍歷數組並累計
for(inti=0;i<array.length;i++){
sum+=array[i];
}
//輸出和
System.out.println(" 菲波那契數列的前20項和為:"+sum);
}
}
㈣ 用java編寫程序,判斷輸出的是否是斐波那契數列
publicclassC{
publicstaticvoidmain(String[]args){
intf0=0;
intf1=1;
intm=8;//檢測目標
booleank=true;
if(m==f0||m==f1){
k=false;
System.out.println("yes");
}elseif(m<f1){
k=false;
System.out.println("no");
}
while(k){
f0=f0+f1;
f1=f1+f0;
if(m==f0||m==f1){
k=false;
System.out.println("yes");
}elseif(m<f1){
k=false;
System.out.println("no");
}
}
}
}
㈤ java 編寫程序,輸出斐波那契數列前30項中的所有質數
人比較懶,不想自己寫,說下大概:循環1~30,
斐波那契數列遞歸:F0=0,F1=1,Fn=F(n-1)+F(n-2)
質數判定:在本身除以(循環2~本身開更號)判定余數為0就不是質數。
之後輸出。
㈥ java 怎麼編寫斐波那契數列 之和 急求
import java.util.Scanner;
public class test{
public static void main(String[] args) {
long numA = 0;
long numB = 0;
long temp = 0;
long sum = 0;
System.out.print("請輸入要計算的項數:");
long num = new Scanner(System.in).nextLong();
for (int i = 1; i <= num; i++) {
if (i == 1 || i == 2) {
numA = 1;
numB = 1;
temp = 1;
}else{
temp = numA + numB;
numA = numB;
numB = temp;
}
sum += temp;
}
System.out.println("斐波拉切數列前" + num + "項和是:"+sum);
}
}
㈦ java 斐波那契數列
importjava.util.Scanner;
/**
*斐波那契數列:第0項是0,第1項是第一個1。
這個數列從第三項開始,每一項都等於前兩項之和
*@authoryoung
*
*/
publicclassFei{
publicstaticvoidfunc(intn){
if(n<3){
System.out.println("0,1");
}elseif(n>3){
inta=0,b=1,c=0;
System.out.print(a+""+b+"");
for(inti=3;i<=n;i++){
c=a+b;
a=b;
b=c;
System.out.print(c+"");
}
}elseif(n<0){
System.out.println("輸入數字不符合要求");
}
}
publicstaticvoidmain(String[]args){
Feif=newFei();
Scannerinput=newScanner(System.in);
System.out.print("請輸入斐波那契數列的列數n,按ENTER:");
intnum=input.nextInt();
System.out.println("斐波那契數列為:");
func(num);
}
}
正確的代碼
㈧ java語言用數組輸出Fibonacci數列:1 1 2 3 5 8 13....前20
方法如下供參考:
publicclassTest{
publicstaticvoidmain(String[]args){
intintArrary[]=newint[20];
intArrary[0]=intArrary[1]=1;
for(inti=2;i<intArrary.length;i++){
intArrary[i]=intArrary[i-1]+intArrary[i-2];
}
System.out.println("Fibonacci數列:11235813....前20如下所示:");
for(inti=0;i<intArrary.length;i++){
if(i%5==0)
System.out.println();
System.out.print(intArrary[i]+" ");
}
}
}
㈨ java語言解決斐波那契數列問題
public
class
zuoye{
public
static
void
main(String[]
args){
int
num1=1,num2=1;//設定前兩位數初始值
int
num=0;
//把變數mun賦值為0是什麼意思?在後面有什麼用?
答:
num賦值初始化為0,
不然為null.
System.out.println(num1+"\\t"+num2+"\\t"+(num1+num2));
//顯示輸出數列的前三位
這個上面的列印的結果和後面循環的結果應該是分開的,也就是前面列印
1
1
2
然後換行,然後再通過循環列印10個數字.
接下來我們看循環部分.
斐波那契數列公式是
F1=1
(n=1)
F2=1
(n=2)
Fn=F(n-1)+F(n-2)
(n>=3)
所以,
for(int
i=1;i<=10;i++){
//for循環
int
num3=num+num2;
//num+num2
??num加num2干什麼?
答:num是個中間變數,
用來傳值,
賦給num的值永遠是F(n-1)
num2=num;
//為什麼又把num賦值給num2?
答:
賦給num2的值永遠是F(n-2).
這里因為num的值在上一個循環里為F(n-1),到下一個循環應該是F(n-2).所以賦給num2.
num=num3;
//
num3再賦給num?
答:
因為賦給num的值永遠是F(n-1),
這里因為num3的值到下一個循環應該就是F(n-1).所以賦給num.
System.out.print("\\t"+num3);
if(i%5==0){
//i能被5整除.為什麼要設定一個這樣的判斷條件?
答:
這里是每五個數列印一個換行符.
System.out.println();
//輸出空的是什麼意思?
答:
這里是列印一個換行符
}
}
}
}
㈩ 如何用java語言輸出斐波那契數列
Java編程:三種方法實現斐波那契數列
其一方法:
publicclassDemo2{
//定義三個變數方法
publicstaticvoidmain(String[]args){
inta=1,b=1,c=0;
System.out.println("斐波那契數列前20項為:");
System.out.print(a+" "+b+" ");
//因為前面還有兩個1、1所以i<=18
for(inti=1;i<=18;i++){
c=a+b;
a=b;
b=c;
System.out.print(c+" ");
if((i+2)%5==0)
System.out.println();
}
}
}
java編程:三種方法實現斐波那契數列
其二方法:
publicclassDemo3{
//定義數組方法
publicstaticvoidmain(String[]args){
intarr[]=newint[20];
arr[0]=arr[1]=1;
for(inti=2;i<arr.length;i++){
arr[i]=arr[i-1]+arr[i-2];
}
System.out.println("斐波那契數列的前20項如下所示:");
for(inti=0;i<arr.length;i++){
if(i%5==0)
System.out.println();
System.out.print(arr[i]+" ");
}
}
}
Java編程:三種方法實現斐波那契數列
其三方法:
publicclassDemo4{
//使用遞歸方法
privatestaticintgetFibo(inti){
if(i==1||i==2)
return1;
else
returngetFibo(i-1)+getFibo(i-2);
}
publicstaticvoidmain(String[]args){
System.out.println("斐波那契數列的前20項為:");
for(intj=1;j<=20;j++){
System.out.print(getFibo(j)+" ");
if(j%5==0)
System.out.println();
}
}
}
同一道題用各種不同的思路去思考解決,也是對知識綜合運用的鍛煉。