HDU 1316 (斐波那契数列,大数相加,大数比较大小)
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=1316
Recall the definition of the Fibonacci numbers:
f1 := 1
f2 := 2
fn := fn-1 + fn-2 (n >= 3)
Given two numbers a and b, calculate how many Fibonacci numbers are in the range [a, b].
#include<bits/stdc++.h>
using namespace std;
string str[];
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 compare(string str1,string str2)//str1大于等于str2,返回1
{
int l1=str1.length();
int l2=str2.length();
if(l1>l2)
{
return ;
}else if(l1<l2)
{
return ;
}else
{
for(int i=;i<l1;i++)
{
if(str1[i]>str2[i])
{
return ;
}else if(str1[i]==str2[i])
{
continue;
}else
{
return ;
}
}
}
return ;
}
int f(string str1,string str2)//找出两个大数中间的斐波那契数的个数,包括边界
{
int l1=str1.length(),l2=str2.length(),index1,index2;
for(int i=;i<=;i++)
{
int k=str[i].length();
if(k<l1)
continue;
else
{
index1=i;
break;
}
}
for(int i=;i>=;i--)
{
int k=str[i].length();
if(k>l2)
continue;
else
{
index2=i;
break;
}
}
int r=;
for(int i=index1;i<=index2;i++)
{
if(compare(str[i],str1)==&&compare(str2,str[i])==)
{
r++;
}
}
return r;
}
int main()
{
string str1,str2;
str[]="";
str[]="";
for(int i=;i<;i++)//先求出需要的斐波那契数列,第500个斐波那契数大于10的1000次方
{
str[i]=add(str[i-],str[i-]);
}
while(cin>>str1>>str2)
{
if(str1==""&&str2=="")
break;
int r=f(str1,str2);
printf("%d\n",r);
}
return ;
}
HDU 1316 (斐波那契数列,大数相加,大数比较大小)的更多相关文章
- hdu 5914(斐波拉契数列)
Triangle Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Su ...
- HDU——4549M斐波那契数列(矩阵快速幂+快速幂+费马小定理)
M斐波那契数列 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Su ...
- HDU 5686 斐波那契数列、Java求大数
原题:http://acm.hdu.edu.cn/showproblem.php?pid=5686 当我们要求f[n]时,可以考虑为前n-1个1的情况有加了一个1. 此时有两种情况:当不适用第n个1进 ...
- D - 1sting(相当于斐波那契数列,用大数写)
Description You will be given a string which only contains ‘1’; You can merge two adjacent ‘1’ to be ...
- HDU 1715 斐波那契数列1000项
二维数组模拟大数加法就可以了,不太难,直接上代码了. #include<stdio.h> #include<string.h> #include<math.h> # ...
- HDU 1715 (大数相加,斐波拉契数列)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1715 大菲波数 Time Limit: 1000/1000 MS (Java/Others) ...
- java大数 斐波那契数列
java大数做斐波那契数列: 思路:1. 2.可以用数组存着 import java.math.BigInteger; import java.util.Scanner; public ...
- P2626 斐波那契数列(升级版)(合数的质数分解, 大数为素数的概率十分小的利用)
题目背景 大家都知道,斐波那契数列是满足如下性质的一个数列: f(1)=1f(1) = 1 f(1)=1 f(2)=1f(2) = 1f(2)=1 f(n)=f(n−1)+f(n−2)f(n) = f ...
- hdu number number number 斐波那契数列 思维
http://acm.hdu.edu.cn/showproblem.php?pid=6198 F0=0,F1=1的斐波那契数列. 给定K,问最小的不能被k个数组合而成的数是什么. 赛后才突然醒悟,只要 ...
随机推荐
- 如何去掉iview里面的input,button等一系列标签自带的蓝色边框
只需要将这些标签加一个:focus{outline:0}即可解决这个问题
- 【node】node的核心模块---http模块,http的服务器和客户端
nodejs事件机制 ##### http服务器和客户端 node.js标准库提供了http模块,其中封装了一个高效的http服务器和一个简易的http客户端 HTTP服务器 1. http.crea ...
- is_palindrome 回文递归
# coding=utf-8def is_palindrome(n,start,end): if start>end: return 1 else: return is_palindrome(n ...
- maven 超级pom位置、maven命令、构件、下载位置、手动打包位置、中央仓库ip
1.超级pom位置 ----> 解压M2_HOME/lib/maven-model-builder-3.5.4.jar 2.运行maven 命令实际上是运行了 java 命令,因为maven插件 ...
- UML建模中简单消息、同步消息和异步消息
两种消息在UML图中的表示方法如图: 1.同步方式 两个通信应用服务之间必须要进行同步,两个服务之间必须都是正常运行的.发送程序和接收程序都必须一直处于运行状态,并且随时做好相互通信的准备. 发送程序 ...
- CRM总结
一.CRM初始 CRM,客户关系管理系统(Customer Relationship Management).企业用CRM技术来管理与客户之间的关系,以求提升企业成功的管理方式,其目的是协助企业管理销 ...
- Falsk的模板分配和蓝图、定制错误信息、 和补充
Flask的模板渲染: Flask的模板在进行渲染的时候是默认选则templates下的html文件 我们可以在实例化app的时候,指定文件来进行选择: 模板渲染更改文件夹:template_fold ...
- 设计带有placeHolder的TextView
设计带有placeHolder的TextView 效果: 源码: PlaceholderTextView.h 与 PlaceholderTextView.m // // PlaceholderText ...
- 使用CocoaPods
使用CocoaPods 1. 安装CocoaPods 有时候,默认的 https://rubygems.org/ 访问不了,你需要先执行以下命令移除掉sources gem sources -r ht ...
- 《C++ Primer Plus》读书笔记之六—函数探幽
第八章 函数探幽 1.常规函数与内联函数的主要区别不在于编写方式,而在于C++编译器如何将它们组合到程序中. 2.常规函数调用使程序跳到另外一个地址(函数地址),并在函数结束时返回,更详细的的实现过程 ...