欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 艺术 > 1201. 【高精度练习】蜜蜂路线

1201. 【高精度练习】蜜蜂路线

2025/3/22 16:42:26 来源:https://blog.csdn.net/2401_89382924/article/details/146429194  浏览:    关键词:1201. 【高精度练习】蜜蜂路线

题目描述

一只蜜蜂在图5.1-2所示的数字蜂房上爬动,已知它只能从标号小的蜂房爬到标号大的相邻蜂房,

现在问你:蜜蜂从蜂房M开始爬到蜂房N,l≤M

输入

M,N的值。

输出

一个数表示爬行路线种数。

样例输入

1 14

样例输出

377

代码:

#include <stdio.h>
#include <string>
#include <algorithm>
using namespace std;
typedef string Number;Number Map[100000];
#define ONE string("1")
#define Rev(a) reverse(a.begin(), a.end())
#define Get(a) ((a) - '0')
int x, y;
Number add(Number a, Number b) // 计算a+b
{Rev(a), Rev(b);size_t Size1 = a.size(), Size2 = b.size();Number ans;int carry = 0;for (size_t i = 0; i < Size1 || i < Size2; i++){int addsum = carry;carry = 0;if (i < Size1) addsum += Get(a[i]);if (i < Size2) addsum += Get(b[i]);if (addsum >= 10) addsum -= 10, carry = 1;ans.push_back(addsum + '0');}if (carry) ans.push_back('1');Rev(ans);return ans;
}
int main()
{int m, n;scanf("%d%d", &m, &n);Map[m] = ONE;if (m + 1 <= n) Map[m + 1] = ONE;for (int i=m+2;i<=n;i++) Map[i] = add(Map[i - 1], Map[i - 2]);printf("%s",Map[n].c_str());return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词