1. 程式人生 > 其它 >斐波那契數列的幾種情況

斐波那契數列的幾種情況

技術標籤:c++C語言程式設計c++c語言

**幾種輸出斐波那契數列或者其中數的情況

1.輸出第n個斐波那契數
2.輸出前n個斐波那契數列中的數
3.輸出斐波那契數數小於c時的輸出值(while,do-while)


一、輸出第n個斐波那契數

前三個數比較特殊,為了便於理解,我把前三個數單獨拿出來,單個輸出,雖然過程長一點,但是意思更淺顯。


以下是使用if語句的程式碼塊

//以下為程式碼塊
//輸出第n個數 
#include<stdio.h>
int main(void){
	int a=0,b=1,c,d,n,i=3;
	printf("你想輸出的第n個斐波那契數,n="
); scanf("%d",&n); if(n==1){ printf("第一個斐波那契數為0"); }else if(n==2) { printf("第2個斐波那契數為1"); }else if(n==3) { printf("第3個斐波那契數為1"); }else if(n>3){ do{ a=b; b=c; c=a+b; i++; }while(i<n); printf("第%d個斐波那契數為:%d"
,n,c); } return 0; }

示例結果:

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

二.輸出前n個斐波那契數列中的數

//#include<stdio.h>
int main(void){
	int a=0,b=1,c,d,n,i=3;
	printf("你想輸出的斐波那契數列數的個數n=");
	scanf("%d",&n);
	if(n==1){
		printf("0\t");
	}else if(n==2) {
		printf("0\t1\t");
	}else if(n>2){
		printf("0\t1\t1\t"
); for(c=2;i<n;i++){ printf("%d\t",c); a=b; b=c; c=a+b; } } return 0; }

示例結果:
在這裡插入圖片描述
在這裡插入圖片描述


3.輸出斐波那契數數小於c時的輸出值(while,do-while)
-------while 語句執行

在此我將其數限制在1000以內,

//while迴圈方式 
#include<stdio.h>
int main(void){
	int a=0,b=1,c;
	c=a+b;
	printf("0\t1\t");
	while(c<1000){
		printf("%d\t",c);
		a=b;
		b=c;
		c=a+b;
	}
	return 0;
}

-------do–while 語句執行*

#include<stdio.h>
int main(void){
	int a=0,b=1,c;
	c=a+b;
	printf("0\t1\t");
	do{
		printf("%6d\t",c);
		a=b;
		b=c;
		c=a+b;
	}while(c<1000); 
	return 0;
}
-//執行為下列情況

這是輸出在一千以內的斐波那契數

今天簡單的說了以下斐波那契數列的簡單情況,在Dev c++中執行編譯的,在其他地方可能有警告(scanf)