HDU 1715 (大数相加,斐波拉契数列)
2024-09-04 13:24:11
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=1715
大菲波数
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 22523 Accepted Submission(s): 8096
Problem Description
Fibonacci数列,定义如下:
f(1)=f(2)=1
f(n)=f(n-1)+f(n-2) n>=3。
计算第n项Fibonacci数值。
f(1)=f(2)=1
f(n)=f(n-1)+f(n-2) n>=3。
计算第n项Fibonacci数值。
Input
输入第一行为一个整数N,接下来N行为整数Pi(1<=Pi<=1000)。
Output
输出为N行,每行为对应的f(Pi)。
Sample Input
5
1
2
3
4
5
Sample Output
1
1
2
3
5
代码如下:
#include<bits/stdc++.h>
using namespace std;
string add(string str1,string str2)//大数加法
{
int l1=str1.length();
int l2=str2.length();
if(l1>l2)
{
for(int i=; i<l1-l2; i++)
{
str2=""+str2;
}
}
else if(l1<l2)
{
for(int i=; i<l2-l1; i++)
{
str1=""+str1;
}
}
l1=str1.length();
string str3;
int c=;
for(int i=l1-; i>=; i--)
{
int temp=str1[i]-''+str2[i]-''+c;
c=temp/;
temp=temp%;
str3=char(temp+'')+str3;
}
if(c!=)
{
str3=char(c+'')+str3;
}
return str3;
}
int main()
{
int n;
scanf("%d",&n);
string str[];
str[]="";
str[]="";
for(int i=; i<=; i++)//求出1000个斐波那契数列
{
str[i]=add(str[i-],str[i-]);
}
while(n--)
{
int pi;
scanf("%d",&pi);
cout<<str[pi]<<endl;
}
return ;
}
最新文章
- 【WPF】日常笔记
- drawable微技巧以及layout的小知识
- ASP.NET MVC中的错误处理
- django开发个人简易Blog——构建项目结构
- 改变edittext边框颜色
- Android measure和layout的一点理解
- activiti搭建(四)八项服务介绍
- iOS数据持久化(三)
- iOS 9 学习系列:UIStack View (转载)
- spf13配置问题
- 该如何关闭thinkphp的缓存呢?有下面几种方法可参考:
- Objective-C NSObject 的实现分析(2014-10-23更新)
- Java-多重if 结构
- Landsat TM DN值转为表观反射率
- Visual Studio2012 添加服务引用时,生成基于任务操作不可用原因
- he
- 使用ob缓存实现真静态
- OpenCV中feature2D——BFMatcher和FlannBasedMatcher
- mysql约束以及数据库的修改
- Lingo求解线性规划案例4——下料问题