『壹』 用java編寫程序,輸出斐波那契數列的前10個數是什麼
1 1 2 3 5 8 13 21 34 55
『貳』 用C語言編程 斐波那契數列:1,1,2,3,5,8,13…,輸出前13項,每行輸出5個數。
public class FeiBoMethod {
// 使用遞歸方法
private static int getSum(int num) {
if (num== 1 || num== 2)
return 1;
else
return getSum(num- 1) + getFibo(num- 2);
}
public static void main(String[] args) {
System.out.println("斐波那契數列的前13項為:");
for (int i = 1; i <= 13; i++) {
System.out.print(getSum(i) + " ");
if (i % 5 == 0)
System.out.println();
}
}
}
使用數組的方式實現
publicclassFeiBoMethod{
//定義數組方法
publicstaticvoidmain(String[]args){
intarr[]=newint[13];
arr[0]=arr[1]=1;
for(inti=2;i<arr.length;i++){
arr[i]=arr[i-1]+arr[i-2];
}
System.out.println("斐波那契數列的前13項如下所示:");
for(inti=0;i<arr.length;i++){
if(i%5==0)
System.out.println();
System.out.print(arr[i]+"\t");
}
}
}
『叄』 編寫一過程,計算出斐波那契數列的第n項並輸出結果
裴波納切數列:a(1)=1,a(2)=1,a(3)=2,a(4)=3,a(5)=5,.
用matlab 編程,代碼如下:
% 計算 a(20)
k=20;
a(1)=1;
a(2)=1;
for i=3:k
a(i)=a(i-2)+a(i-1);
end
a(k)
運行結果: ans = 6765
你要計算第幾項,只要改變對應的k就行了.
希望對你有幫助,滿意請採納,謝謝~
『肆』 C語言 寫程序,輸出斐波那契數列的前20項,每行輸出4個數
方法一for循環
publicclassFeiBoMethod{
定義三個變數方法
publicstaticvoidmain(String[]args){
inta=1,b=1,c=0;
System.out.println("斐波那契數列前20項為:");
System.out.print(a+"\t"+b+"\t");
因為前面還有兩個1、1所以i<=18
for(inti=1;i<=18;i++){
c=a+b;
a=b;
b=c;
System.out.print(c+"\t");
if((i+2)%4==0)
System.out.println();
}
}
}
方法2使用數組的方式實現
publicclassFeiBoMethod{
定義數組方法
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%4==0)
System.out.println();
System.out.print(arr[i]+"\t");
}
}
}
遞歸實現
publicclassFeiBoMethod{
使用遞歸方法
privatestaticintgetSum(intnum){
if(num==1||num==2)
return1;
else
returngetSum(num-1)+getFibo(num-2);
}
publicstaticvoidmain(String[]args){
System.out.println("斐波那契數列的前20項為:");
for(inti=1;i<=20;i++){
System.out.print(getSum(i)+"\t");
if(i%4==0)
System.out.println();
}
}
}
『伍』 C語言編程輸出斐波那契數列第n項的值。多組,第一行輸入一個n(n大於等於0小於等於10的10次方)
斐波那契數列中
F[x]=F[x-1]+F[x-2];
對於n不大,可以直接用遞推來解決
#include<stdio.h>
intmain(){
intn,f1,f2,f3,i;
while(~scanf("%d",&n)){
f1=1,f2=1;
if(n<2){
printf("1 ");
continue;
}
for(i=3;i<=n;i++){
f3=(f1+f2)%66666;
f1=f2;
f2=f3;
}
printf("%d ",f3);
}
return0;
}
就可以了。
但是這道題目n比較大,是10^10
直接這么跑的話,時間有點接受不了
那麼就要高一點手段了。。
可以寫出一下兩個等式:
F[n] =1*F[n-1]+1*F[n-2]
F[n-1]=1*F[n-1]+0*F[n-2]
這樣就樂意用F[n-1] F[n-2]表示F[n] F[n-1]了
這么表示的意義在於,可以寫成一個轉移矩陣:
intquickpower(inta,intb){
intret=1;
while(b){
if(b&1)
ret=ret*a%66666;
a=a*a%66666;
b>>=1;
}
returnret;
}//只需要把上面的a改成矩陣就可以了
『陸』 編寫程序,將斐波那契數列前20個數值按照每行4個排列輸出
#include<iostream.h>
void
fibo()
{
int
num[20]={1,1};
for(int
i=2;i<20;i++)
{
num[i]=num[i-1]+num[i-2];
}
for(int
j=0;j<20;j++)
{
if((j+1)%4==0)
{
cout<<num[j]<<endl;
}
else
{
cout<<num[j]<<",";
}
}
}
void
main()
{
fibo();
}
『柒』 編寫程序,實現下列要求 輸入一個數字n,輸出斐波那契數列中大於等於n的第一個數字,並指明該數字是第幾個
#include<iostream>
using namespace std;
int main()
{
int f1, f2, t,i=1;
f1 = 0;
f2 = 1;
cout << "請輸入t:";
cin >> t;
while(true)
{
f1+= f2;
i++;
if(f1>=t)
{
t=f1;
break;
}
f2+= f1;
i++;
if(f2>=t)
{
t=f2;
break;
}
}
cout<<"大於等於它的斐波那契數:"<<t<<"該數在斐波那契數列的項數是:"<<i<<endl;
system("pause");
return 0;
}
『捌』 編寫一個C程序,用於列印斐波那契數列的前10個數
……
通常的教材上講到遞歸時,引用「斐波那契數列」的例子,其實我感覺這是一個誤導。「斐波那契數列」的遞歸解決是效率最低的。
【遞歸版】
//列印斐波那契數列的前10項
#include
<stdio.h>
#define
MAX
10
int
fib(int
n);
int
main(){
int
i;
printf("斐波那契數列的前10項是:\n");
for(i=1;i<=MAX;i++){
printf("%d\t",fib(i));
}
return
0;
}
int
fib(int
n){
return
n<3?1:(fib(n-1)+fib(n-2));
}
【迭代版】
//列印斐波那契數列的前10項
#include
<stdio.h>
#define
MAX
9
int
main(){
int
fib[MAX],i=2;
fib[0]=fib[1]=1;
printf("斐波那契數列的前10項是:\n%d\t%d\t",fib[0],fib[1]);
while(i<10){
fib[i]=fib[i-1]+fib[i-2];
printf("%d\t",fib[i]);
i++;
}
return
0;
}
『玖』 c語言編程輸出斐波那契數列前十項 幫個忙
//#include"stdafx.h"//vc++6.0加上這一行.
#include"stdio.h"
intmain(void){
inta,b,i;
printf("Theyareasfollows: ");
for(a=0,printf("%-4d",b=1),i=1;i<10;i++){
printf("%-4d",b+=a);
a=b-a;
}
printf(" ");
return0;
}
『拾』 C語言編程:寫出斐波那契數列的前40個數
#include <stdio.h>
int main()
{
int f1 = 1;
int f2 = 1;
int f3,i;
printf("%d %d ",f1,f2);
for(i = 1; i <= 38; i++)
{
f3 = f1 + f2;
printf("%d ",f3);
f1= f2;
f2= f3;
}
printf(" ");
return 0;
}
(10)編程輸出斐波那契數列第9個數字擴展閱讀:
在數學上,斐波那契數列以如下被以遞推的方法定義:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)
遞推公式
斐波那契數列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...
如果設F(n)為該數列的第n項(n∈N*),那麼這句話可以寫成如下形式::F(n)=F(n-1)+F(n-2)
顯然這是一個線性遞推數列。
平方與前後項
從第二項開始,每個偶數項的平方都比前後兩項之積少1,每個奇數項的平方都比前後兩項之積多1。