迴圈 小蜜蜂 斐波那契數列 大數加法

2021-06-16 09:28:53 字數 2668 閱讀 4119

【題】

乙隻小蜜蜂在如下圖所示的蜂窩上爬行。它爬行時,只能從乙個格爬到相鄰的大號格仔中。例如,從 1 號格仔可以爬到 2 號或者 3 號格仔,從 2 號則可以爬到 3 號或者 4 號格仔。

請問從乙個格仔 a 爬到乙個格仔 b 一共有多少種可行的路線。

分別是起始點 a 和終止點 b 的編號。( a 和 b 在 1~100 之間,且 a方案數量。

測試輸入

期待的輸出

時間限制

記憶體限制

額外程序

測試用例 1

以文字方式顯示

1 4↵

以文字方式顯示3↵

1秒64m

0測試用例 2

以文字方式顯示

1 5↵

以文字方式顯示5↵

1秒64m

0測試用例 3

以文字方式顯示

1 50↵

以文字方式顯示

12586269025↵ 1秒

64m0

測試用例 4

以文字方式顯示

2 50↵

以文字方式顯示

7778742049↵ 1秒

64m0

測試用例 7

以文字方式顯示

1 100↵

以文字方式顯示

354224848179261915075↵ 1秒

64m0

【分析】

分析可知,這是乙個斐波那契數列。需要注意的是,c語言中所有的型別都不能表示題中的數值,需要用到大數加法。

【**】

(1)先給出斐波那契數列的求法:

#include "stdio.h"

int main()

printf("%d\n", y);

return 0;

}

(2)大數加法

#include "stdio.h"

#include "stdlib.h"

#define n 22 //22位能表示第100個以內的斐波那契數列值

char * add(char * x1, char * x2);

void output(char * y);

int main()

//給x1和x2賦初值

//x1 = 1256

//x2 = 567

x1[0] = '6'; x1[1] = '5'; x1[2] = '2'; x1[3] = '1';

x2[0] = '7'; x2[1] = '6'; x2[2] = '5';

y = add(x1, x2);

//輸出

output(x1);

printf(" + ");

output(x2);

printf(" = ");

output(y);

printf("\n");

return 0;

}//大數加法函式

char * add(char * x1, char * x2)

//處理相同長度的部分

while(x1[i] != '\0' && x2[i] != '\0')

//如果x1比x2長

while(x1[i] != '\0')

//如果x2比x1長

while(x2[i] != '\0')

//如果還有進製

if (t == 1)

y[i] = '\0';

return y;

}//輸出

void output(char * y)

i--;

while(i >= 0)

}

(3)斐波那契數列 + 大數加法

#include "stdio.h"

#include "stdlib.h"

#define n 22 //22位能表示第100個以內的斐波那契數列值

char * add(char * x1, char * x2);

void output(char * y);

int main()

//給x1和x2賦初值

x1[0] = '0'; x1[1] = '\0';

x2[0] = '1'; x2[1] = '\0';

//斐波那契數列,疊加

for(i = 1; i <= count; i++)

//輸出結果

output(y);

printf("\n");

return 0;

}//大數加法函式

char * add(char * x1, char * x2)

//處理相同長度的部分

while(x1[i] != '\0' && x2[i] != '\0')

//如果x1比x2長

while(x1[i] != '\0')

//如果x2比x1長

while(x2[i] != '\0')

//如果還有進製

if (t == 1)

y[i] = '\0';

return y;

}//輸出

void output(char * y)

i--;

while(i >= 0)

}

蜜蜂問題 斐波那契數列

題目描述 乙隻蜜蜂在上圖所示的數字蜂房上爬動,已知它只能從標號小的蜂房爬到標號大的相鄰蜂房,現在問你 蜜蜂從蜂房m開始爬到蜂房n,m輸入輸入m,n的值。輸出 爬行有多少種路線。樣例輸入 1 14 樣例輸出 分析 1 1 1 1 2 1 1 3 2 1 4 3 1 5 5 1 6 8 斐波那契數列。大...

迴圈斐波那契數列 斐波那契數列應用

什麼是斐波那契數列 斐波那契數列指的是這樣乙個數列 1,1,2,3,5,8,13,21,34,55,89,144 這個數列從第3項開始,每一項都等於前兩項之和 台階問題 有一段樓梯有10級台階,規定每一步只能跨一級或兩級,要登上第10級台階有幾種不同的走法?這就是乙個斐波那契數列 登上第一級台階有一...

HD2044 乙隻小蜜蜂(變形的斐波那契)

problem description 有乙隻經過訓練的蜜蜂只能爬向右側相鄰的蜂房,不能反向爬行。請程式設計計算蜜蜂從蜂房a爬到蜂房b的可能路線數。其中,蜂房的結構如下所示。輸入資料的第一行是乙個整數n,表示測試例項的個數,然後是n 行資料,每行包含兩個整數a和b 0 output 對於每個測試例項...