<span style="color:#330099;"><span style="background-color: rgb(204, 204, 204);"><a target=_blank marked="1" target="_blank" href="http://acm.hdu.edu.cn/showproblem.php?pid=2044">HDU2044 一只小蜜蜂......</a>
#include<iostream>
using namespace std;
int main(void)
{
int T;
cin >> T;
long long result[51];//需要long long型才能储存下来
memset(result, 0, sizeof(result));</span></span>
<span style="color:#330000;"><span style="background-color: rgb(204, 204, 204);">/*
memset() 函数用来将指定内存的前n个字节设置为特定的值,其原型为:
void * memset( void * ptr, int value, size_t num);
参数说明:
ptr 为要操作的内存的指针。
value 为要设置的值。你既可以向 value 传递 int 类型的值,也可以传递 char 类型的值,int 和 char 可以根据 ASCII 码相互转换。
num 为 ptr 的前 num 个字节,size_t 就是unsigned int。
*/</span></span>
<span style="color:#3333FF;"><span style="background-color: rgb(204, 204, 204);">result[0] = 1, result[1] = 1;
for (int i = 2; i < 51; i++)
{
result[i] = result[i - 2] + result[i - 1];<span style="color:#330000;">//如图将每个蜂窝对应有相应的数字,那么依据题意也就是每次后走 1 步,但是方向不一样,所以每次有两种选择;</span>
}
while (T--)
{
int kaishi, jieshu;
cin >> kaishi >> jieshu;
cout << result[jieshu - kaishi] << endl;
}
return 0;
}</span></span>