1143 多少个Fibonacci数
时间限制:500MS 内存限制:65536K
提交次数:270 通过次数:16
题型: 编程题 语言: C++;C
Description
给你如下Fibonacci 数的定义:
F1 = 1
F2 = 2
Fn = Fn-1 + Fn-2 (n >= 3)
给你两个数a与b,现要求你计算在a与b之间(包括a、b)有多少个Fibonacci 数
输入格式
有多行,每行有两个数a、b,使用空格分隔,a <= b <= 10^100(即最大10的100次方)
最后一行为两个0
输出格式
除了最后一行,其它每一行要求输出在a与b之间的Fibonacci 数的个数,一行一个
输入样例
10 100
1234567890 9876543210
0 0
输出样例
5
4
作者
admin
思路:这道题一早就盯着他了,但是一直以为自己不会做(a,b<=10^100) 被范围吓到了
后来在hdu 中做了一道题http://acm.hdu.edu.cn/showproblem.php?pid=1715,大概题意是给出n,求fb的第n项F(n), n的范围是<1000
前1000项的fb是很大的,有1、2百位,这只能用数组存了,那就可以用高精度加法,把前1000项的fb制成表;
而在这道题中,是给出a ,b 求a到b之间的fb个数,同上面的方法,先打一个前1000项的fb表(大数加法),然后 a,b在表中找位置(大数比较),那么他们之间的个数就是了
#include<cstdio>
#include<cstring>
char fb[][];//存储前1000项的fb
//高精度比较,返回1表示a>b 返回-1表示a=b 0表示a<b
int bcmp(char a[],char b[])
{
int i,n,m;
n=strlen(a);
m=strlen(b);
if(n>m) return ;//先比长度
else if(n<m) return ;
else//长度相同的时候再从高位开始逐一比较
{
for(i=; i<n; i++)
{
if(a[i]>b[i]) return ;
else if(a[i]<b[i]) return ;
else continue;
}
}
return -;//全部比较完毕,以上return未生效 就是 a=b
}
//高精度加法
void bplus(char a[],char b[],int t)
{
int c[],d[];
memset(c,,sizeof(c));
memset(d,,sizeof(d));
int n,m,i,j,k;
i=;
n=strlen(a);
m=strlen(b);
//字符数组转为整形数组 ,逆置存放
for(k=n-; k>=; k--)
c[i++]=a[k]-'';
j=;
for(k=m-; k>=; k--)
d[j++]=b[k]-''; k=n>m?n:m;
for(i=; i<=k; i++)
{
c[i+]+=(c[i]+d[i])/;
c[i]=(c[i]+d[i])%;
}
if(c[k+]) k=k+;
//将整形数组,转化为字符数组存在fb数组
j=;
for(i=k; i>=; i--)
fb[t][j++]=c[i]+'';
}
int main()
{
int i,j;
char s1[],s2[];
memset(fb,'\0',sizeof(fb));
fb[][]='';
fb[][]='';
//打表
for(i=; i<=; i++)
bplus(fb[i-],fb[i-],i); while(scanf("%s%s",s1,s2))
{
int cnt=;
if(!((s1[]-'')||(s2[]-''))) break;
for(i=; i<=; i++)
{
//查找a的位置 i
if(bcmp(fb[i],s1)==-)
{
cnt=;
i++;
break;
}
if(bcmp(fb[i],s1)>)
{
cnt=;
break;
}
}
for(j=i; j<=; j++)
if(bcmp(fb[j],s2)<=) cnt++;
else break;
printf("%d\n",cnt);
}
return ;
}
1143 多少个Fibonacci数的更多相关文章
- SCAU1143 多少个Fibonacci数--大菲波数【杭电-HDOJ-1715】--高精度加法--Fibonacci数---大数比较
/*******对读者说(哈哈如果有人看的话23333)哈哈大杰是华农的19级软件工程新手,才疏学浅但是秉着校科联的那句“主动才会有故事”还是大胆的做了一下建一个卑微博客的尝试,想法自己之后学到东西都 ...
- 关于java的递归写法,经典的Fibonacci数的问题
经典的Fibonacci数的问题 主要想展示一下迭代与递归,以及尾递归的三种写法,以及他们各自的时间性能. public class Fibonacci { /*迭代*/ public static ...
- java 练手 Fibonacci数
Problem B Fibonacci数 时间限制:3000 ms | 内存限制:65535 KB 描述 无穷数列1,1,2,3,5,8,13,21,34,55...称为Fibonacci数列 ...
- Fibonacci数
Fibonacci数 时间限制:3000 ms | 内存限制:65535 KB 难度:1 描述 无穷数列1,1,2,3,5,8,13,21,34,55...称为Fibonacci数列,它可以递 ...
- 每日一小练——高速Fibonacci数算法
上得厅堂,下得厨房,写得代码,翻得围墙,欢迎来到睿不可挡的每日一小练! 题目:高速Fibonacci数算法 内容:先说说Fibonacci数列,它的定义是数列:f1,f2....fn有例如以下规律: ...
- 一个小的日常实践——高速Fibonacci数算法
上得厅堂.下得厨房.写得代码,翻得围墙,欢迎来到睿不可挡的每日一小练! 题目:高速Fibonacci数算法 内容:先说说Fibonacci数列,它的定义是数列:f1,f2....fn有例如以下规律: ...
- ACM Fibonacci数 计算
Fibonacci数 时间限制:3000 ms | 内存限制:65535 KB 难度:1 描述 无穷数列1,1,2,3,5,8,13,21,34,55...称为Fibonacci数列,它可以递 ...
- 计算fibonacci数(多种方法)
#include <iostream> using namespace std; //计算fibonacci数 //方法一:二分递归法,时间复杂度为O(2^n),额外空间复杂度为常数 in ...
- 利用JavaScript打印出Fibonacci数(不使用全局变量)
从汤姆大叔的博客里看到了6个基础题目:本篇是第4题 - 利用JavaScript打印出Fibonacci数(不使用全局变量) 解题关键: 1.Fibonacci数列的规律 2.递归 解点1:Fibon ...
随机推荐
- 【初级为题,大神绕道】The app icon set named "AppIcon" did not have any applicable content 错误#解决方案#
The app icon set named "AppIcon" did not have any applicable content 错误,怎样解决 按照您的错误提示您应该 ...
- 抓包工具 wireshark
http://fangxin.blog.51cto.com/1125131/735178
- PHP访问数据,增删改
主页面 <h1>主页面</h1> <table width="100%" border="1" cellpadding=" ...
- CloudPlatform和CloudStack的关系
The Scalr team is at the CloudStack Collab Conf, and this post summarizes a few things we learned. C ...
- 将DataSet(DataTable)转换成JSON格式(生成JS文件存储)
public static string CreateJsonParameters(DataTable dt) { /**/ /**/ /**/ /* /*********************** ...
- MFC加载皮肤 转自:http://www.cctry.com/thread-4032-1-1.html
VC皮肤库SkinSharp 1.0.6.6的使用: SkinSharp又称Skin#,是Windows环境下一款强大的换肤组件.SkinSharp作为换肤控件,只需要在您的程序中添加一行代码,就能让 ...
- [COJ0988]WZJ的数据结构(负十二)
[COJ0988]WZJ的数据结构(负十二) 试题描述 输入 见题目,注意本题不能用文件输入输出 输出 见题目,注意本题不能用文件输入输出 输入示例 输出示例 数据规模及约定 1≤N≤1500,M≤N ...
- 什么是响应式Web设计?怎样进行?
http://beforweb.com/node/6/page/0/3 开始第一篇.老规矩,先无聊的谈论天气一类的话题.十一长假,天气也终于开始有些秋天的味道,坐在屋里甚至觉得需要热咖啡.话说两年前也 ...
- iOS 关于Layer的疑问
很久很久以前,就对ios的Layer十分的不解,学习了android后,打算通过android中的相关实现,分析一下ios中layer的作用,结果没有找到android中的对应的内容!十分让人郁闷.于 ...
- Java for LeetCode 188 Best Time to Buy and Sell Stock IV【HARD】
Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...