【題】
乙隻小蜜蜂在如下圖所示的蜂窩上爬行。它爬行時,只能從乙個格爬到相鄰的大號格仔中。例如,從 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 對於每個測試例項...