(大整数类Biginteger)大斐波数

题目

Fibonacci数列,定义如下:
f(1)=f(2)=1
f(n)=f(n-1)+f(n-2) n>=3。
计算第n项Fibonacci数值。

输入

输入第一行为一个整数N,接下来N行为整数Pi(1<=Pi<=1000)。

输出

输出为N行,每行为对应的f(Pi)。

样例输入

5
1
2
3
4
5
样例输出

1
1
2
3
5

分析与解答:

biginteger分析参见:
https://blog.csdn.net/mrcrack/article/details/53263235
代码:

#include<iostream>
#include<vector>
#include<cstring>
using namespace std;
struct BigInteger {static const int BASE = 100000000;static const int WIDTH = 8;vector<int> s;BigInteger(long long num = 0) { *this = num; } // 构造函数BigInteger operator = (long long num) { // 赋值运算符s.clear();do {s.push_back(num % BASE);num /= BASE;} while (num > 0);return *this;}BigInteger operator = (const string& str) { // 赋值运算符s.clear();int x, len = (str.length() - 1) / WIDTH + 1;for (int i = 0; i < len; i++) {int end = str.length() - i*WIDTH;int start = max(0, end - WIDTH);sscanf(str.substr(start, end - start).c_str(), "%d", &x);s.push_back(x);}return *this;}BigInteger operator + (const BigInteger& b) const {BigInteger c;c.s.clear();for (int i = 0, g = 0; ; i++) {if (g == 0 && i >= s.size() && i >= b.s.size()) break;int x = g;if (i < s.size()) x += s[i];if (i < b.s.size()) x += b.s[i];c.s.push_back(x % BASE);g = x / BASE;}return c;}
};ostream& operator << (ostream &out, const BigInteger& x) {out << x.s.back();for (int i = x.s.size() - 2; i >= 0; i--) {char buf[20];sprintf(buf, "%08d", x.s[i]);for (int j = 0; j < strlen(buf); j++) out << buf[j];}return out;
}istream& operator >> (istream &in, BigInteger& x) {string s;if (!(in >> s)) return in;x = s;return in;
}int main(){BigInteger a,b,ans[1005];ans[1]=1;ans[2]=1;for(int i=3;i<=1001;++i){ans[i]=ans[i-1]+ans[i-2];}int n;cin>>n;while(n--){int i;cin>>i;cout<<ans[i]<<endl;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560797.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql创建表的流程_MySQL Create Table怎样创建表?详解创建过程步骤

1、新建一个名为"createsql"的数据库。2、点击该数据库左侧的三角形图标&#xff0c;并显示其下面有四个列表项&#xff1a;表(Tables)和视图(Views)、存储过程(Stored Procedures)、函数(Functions)。3、右击【表(Tables)】列表项&#xff0c;并在弹出的快捷菜单中选…

(stack栈)rails

题目&#xff1a; 某城市有一个火车站&#xff0c;铁轨铺设如图所示&#xff0c;有n节车厢从A方向驶入车站&#xff0c;按进站顺序编号为1至n。你的任务是判断是否能让它们按照某种特定的顺序进入B方向的铁轨并驶出车站。为了重组车厢&#xff0c;你可以借助中转站C。这是一个…

docker 查看镜像_Docker 核心概念、安装、端口映射及常用操作命令,详细到令人发指!...

来自小洋人最HAPPY投稿一、Docker简介Docker是开源应用容器引擎&#xff0c;轻量级容器技术。基于Go语言&#xff0c;并遵循Apache2.0协议开源Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中&#xff0c;然后发布到任何流行的Linux系统上&#xff0c…

(stack 解析表达式)矩阵链乘

问题: 输入n个矩阵的维度和一些矩阵链乘表达式,输出乘法的次数.如果无法进行,输出error.如果A是m*n矩阵,B是n*p的矩阵,乘法次数为m*n*p 如果A的列数不等于B的行数,则乘法无法进行. A 50*10 B 10*20 C 20*5 &#xff08;A(BC))乘法次数&#xff1a;10*20*5(BC乘法次数)50*1…

mysql和维信公众号_mysql实用指南

mysqld --verbose --help&#xff1a;可以显示 mysql 的编译配置选项&#xff0c;即功能配置描述。mysql 显示所有支持的字符集&#xff1a; SHOW CHARACTER SET;mysql 创建数据库或表的时候设置是否大小写敏感&#xff1a;CREATE DATABASE test_database CHARACTER SET u…

(链表,插入元素)破损的键盘

题目&#xff1a; 你有一个破损的键盘。键盘上的所有键都可以正常工作&#xff0c;但有时Home键或者End键会自 动按下。你并不知道键盘存在这一问题&#xff0c;而是专心地打稿子&#xff0c;甚至连显示器都没打开。当你 打开显示器之后&#xff0c;展现在你面前的是一段悲剧的…

mac 强制删除mysql_mac中如何彻底删除MySQL

使用sudo rm /etc/my.cnfsudo rm /usr/local/mysqlsudo rm -rf /usr/local/mysql*sudo rm -rf /Library/StartupItems/MySQLCOMsudo rm -rf /Library/PreferencePanes/MySQL*vim /etc/hostconfig and removed the line MYSQLCOM-YES-rm -rf ~/Library/PreferencePanes/MySQL*su…

(完全二叉树编号)小球下落

题目 有一棵二叉树&#xff0c;最大深度为D&#xff0c;且所有的叶子深度都相同。所有结点从上到下从左到右编号为1&#xff0c;2&#xff0c;3&#xff0c;…&#xff0c;2eD-1。在结点1处放一个小球&#xff0c;它会往下落。每个结点上都有一个开关&#xff0c;初始全部关闭…

python range 步长为负数_【Python面试】 说说Python中xrange和range的区别?

公众号新增加了一个栏目&#xff0c;就是每天给大家解答一道Python常见的面试题&#xff0c;反正每天不贪多&#xff0c;一天一题&#xff0c;正好合适&#xff0c;只希望这个面试栏目&#xff0c;给那些正在准备面试的同学&#xff0c;提供一点点帮助&#xff01;小猿会从最基…

(二叉树的动态创建与bfs)树的层次遍历

题目&#xff1a; 例&#xff1a;输入一棵二叉树&#xff0c;你的任务是按从上到下&#xff0c;从左到右的顺序输出每一个节点的值。每个节点都按照从根节点到它的移动序列给出(L表示左&#xff0c;R表示右)。在输入中&#xff0c;每个节点的左括号和右括号之间没有空格&#…

windows搭建tftp服务器_Ubuntu中搭建TFTP服务器

参考&#xff1a; 在Ubuntu中搭建TFTP服务器_小拇指的脑瓜子的博客-CSDN博客_ubuntu tftp​blog.csdn.net主要步骤&#xff1a;sudo apt-get install -y xinetd tftp tftpd2. 创建文件/etc/xinetd.d/tftp&#xff0c;内容如下&#xff1a;service tftp {socket_type dgrampro…

(二叉树的遍历)Tree UVa 548

题目&#xff1a; 给一棵点带权&#xff08;权值各不相同&#xff0c;都是小于10000的正整数&#xff09;的二叉树的中序和后序遍 历&#xff0c;找一个叶子使得它到根的路径上的权和最小。如果有多解&#xff0c;该叶子本身的权应尽量小。 输入中每两行表示一棵树&#xff…

mysql undrop_MySQL 如何对InnoDB使用Undrop来恢复InnoDB数据

适用于&#xff1a;MySQL服务器版本4.1到5.6 [发行版4.1到5.6]本文信息适用于所有平台。目标如何使用undrop for innodb从损坏的表中提取数据解决方案使用工具有时可能从无法用innodb_force_recovery读取的表中恢复数据。undrop可以直接读取数据库的ibdata1文件&#xff0c;来获…

(二叉树DFS)天平UVa 839

题目 输入一个树状天平&#xff0c;根据力矩相等原则判断是否平衡。如图6-5所示&#xff0c;所谓力矩相等&#xff0c;就是WlDlWrDr&#xff0c;其中Wl和Wr分别为左右两边砝码的重量&#xff0c;D为距离。采用递归&#xff08;先序&#xff09;方式输入&#xff1a;每个天平的…

r语言怎么保存代码_R代码忘记保存,系统崩溃了怎么办?

R问题 跑程序时电脑突然崩溃,程序被强制中断导致代码不见了怎么办? 这些糟心的情况想必每个打工人都不想经历,偏偏我就是那个倒霉蛋,今早打开电脑发现昨晚写的代码忘记保存,心态崩到想当场飙眼泪,冷静下来之后开始寻找解决方案: 解决方案 按照下述路径找到history_datab…

(二叉树DFS)下落的树叶

题目&#xff1a; 给一棵二叉树,每个结点都有一个水平位置:左子结点在它左边1个单位,右子结点在右边1个单位。从左向右输出每个水平位置的所有结点的权值之和。如图所示,从左到右的3个位置的权和分别为7,11,3。按照递归(先序)方式输入,用-1表示空树。 Sample Input 5 7 -1 6…

orchard mysql_Orchard Core创建CMS/Blog站点

安装.NET Core SDK安装visual studio community或者visual studio for MAC根据系统下载安装对应的visual studio版本使用VS创建ASP.NET Core工程本文示例使用的是visual studio for mac&#xff0c;创建ASP.NET Core工程项目 (.net core 版本选择最新版3.1)&#xff1a;创建后默…

(连续子序列)唯一的雪花

题目&#xff1a; 输入一个长度为n(n<1e6)的序列A&#xff0c;找到一个尽量长的连续子序列AL~AR,使得该序列中没有相同元素。输出最大长度。 分析与解答 对于这种子序列问题我们采用模拟的方法 方法一&#xff1a;利用set 1.如果有一个序列的元素没出现过&#xff0c;就…

php连接mysql开发环境_Windows下安装PHP开发环境

一、Apache因为Apache官网只提供源代码&#xff0c;如果要使用必须得自己编译&#xff0c;这里我选择第三方安装包Apache Lounge。首先下载并安装vc redist&#xff0c;这是Apache运行必需的一个组件。下载Apache解压版&#xff0c;将解压后的文件夹放在你想要安装的路径下。修…

(DFS)四分树

题目&#xff1a; 如图6-8所示&#xff0c;可以用四分树来表示一个黑白图像&#xff0c;方法是用根结点表示整幅图像&#xff0c;然后把行列个分城两等分&#xff0c;按照图中的方式编号&#xff0c;从左到右对应4个子结点。如果某子结点对应的取余全白或全黑&#xff0c;则直…