数论 - 高精度Fibonacci数 --- UVa 10183 : How Many Fibs ?
How many Fibs?
Description
f1 := 1
f2 := 2
fn := f
n-1
+ f
n-2
(n>=3)
Given two numbers a and b, calculate how many Fibonacci numbers are in the range [a,b].
Input
Output
Sample Input
10 100
1234567890 9876543210
0 0
Sample Output
5
4
Mean:
给定两个整数a和b,统计区间[a,b]内有多少个斐波那契数。
analyse:
T由于这题输入的范围达到了10^100,必须要用高精度来做。
我们先把10^100以内的斐波那契数全部求出来,然后输入的sta,en后进行位置查找,最后把sta、en的位置相见就的答案。
Time complexity:O(n)
Source code:
/*
_ooOoo_
o8888888o
88" . "88
(| -_- |)
O\ = /O
____/`---'\____
.' \\| |// `.
/ \\||| : |||// \
/ _||||| -:- |||||- \
| | \\\ - /// | |
| \_| ''\---/'' | |
\ .-\__ `-` ___/-. /
___`. .' /--.--\ `. . __
."" '< `.___\_<|>_/___.' >'"".
| | : `- \`.;`\ _ /`;.`/ - ` : | |
\ \ `-. \_ __\ /__ _/ .-` / /
======`-.____`-.___\_____/___.-`____.-'======
`=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.............................................
佛祖镇楼 BUG辟易
佛曰:
写字楼里写字间,写字间里程序员;
程序人员写程序,又拿程序换酒钱。
酒醒只在网上坐,酒醉还来网下眠;
酒醉酒醒日复日,网上网下年复年。
但愿老死电脑间,不愿鞠躬老板前;
奔驰宝马贵者趣,公交自行程序员。
别人笑我忒疯癫,我笑自己命太贱;
不见满街漂亮妹,哪个归得程序员?
*/ //Memory Time
// 1347K 0MS
// by : Snarl_jsb
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<vector>
#include<queue>
#include<stack>
#include<map>
#include<string>
#include<climits>
#include<cmath>
#define MAX 1100
#define LL long long
using namespace std; vector<string> fibs; string fibs_add(string f1,string f2)
{
string buff;
int carry=0,len1=f1.length(),len2=f2.length();
for(int i=0;i<len1;i++)
{
carry=(f1[i]-'0')+(f2[i]-'0')+carry;
char c=carry%10+'0';
carry/=10;
buff.push_back(c);
}
for(int i=len1;i<len2;i++)
{
carry=(f2[i]-'0')+carry;
char c=carry%10+'0';
carry/=10;
buff.push_back(c);
}
if(carry)
buff.push_back('1');
return buff;
} void fill_fibs()
{
string f1,f2;
f1.push_back('1');
f2.push_back('1');
fibs.push_back(f1);
fibs.push_back(f2);
while(f2.length()<105)
{
string tmp=fibs_add(f1,f2);
f1=f2;
f2=tmp;
fibs.push_back(f2);
}
fibs[0]="0";
int Size=fibs.size();
for(int i=0;i<Size;i++)
reverse(fibs[i].begin(),fibs[i].end());
} int main()
{
// freopen("C:\\Users\\ASUS\\Desktop\\cout.txt","w",stdout);
// freopen("C:\\Users\\ASUS\\Desktop\\cout.txt","w",stdout);
fill_fibs();
string sta,en;
while(cin>>sta>>en,sta[0]-'0'||en[0]-'0')
{
int i=1,ans=0;
while(1)
{
if(fibs[i].length()>sta.length()) break;
else if(fibs[i].length()==sta.length()&&fibs[i]>=sta) break;
i++;
}
while(1)
{
if(fibs[i]==en) {ans++;break;}
if(fibs[i].length() > en.length()) break;
else if(fibs[i].length() == en.length() && fibs[i]>en) break;
i++;
ans++;
}
cout<<ans<<endl;
}
return 0;
}
数论 - 高精度Fibonacci数 --- UVa 10183 : How Many Fibs ?的更多相关文章
- UVA 10183 How Many Fibs?
高精度推出大概600项fabi数,就包含了题目的数据范围,对于每组a,b,从1到600枚举res[i]即可 可以直接JAVA大数.我自己时套了C++高精度的版 JAVA 复制别人的 import ja ...
- SCAU1143 多少个Fibonacci数--大菲波数【杭电-HDOJ-1715】--高精度加法--Fibonacci数---大数比较
/*******对读者说(哈哈如果有人看的话23333)哈哈大杰是华农的19级软件工程新手,才疏学浅但是秉着校科联的那句“主动才会有故事”还是大胆的做了一下建一个卑微博客的尝试,想法自己之后学到东西都 ...
- 1143 多少个Fibonacci数
时间限制:500MS 内存限制:65536K提交次数:270 通过次数:16 题型: 编程题 语言: C++;C Description 给你如下Fibonacci 数的定义: F1 = 1 F ...
- Colossal Fibonacci Numbers! UVA 11582 寻找循环节
/** 题目:Colossal Fibonacci Numbers! UVA 11582 链接:https://vjudge.net/problem/UVA-11582 题意:f[0] = 1, f[ ...
- 关于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有例如以下规律: ...
随机推荐
- webService调用
1.wsimport 生成客户端 2.axis2 3.通过HttpClient调用webservice 4.使用xfire
- Scala 深入浅出实战经典 第42讲:scala 泛型类,泛型函数,泛型在spark中的广泛应用
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...
- 关于Server Sql 2008触发器的使用
1.创建同一个服务器下同一个数据库实例两个不同数据库表同步方法 --==================================== -- Create database trigger -- ...
- c++标准库
Technical Report 1不是正式的库只是一个草案,作为C++ 2003标准的附加库被大多数编译器厂商所支持,它是个过渡性质的库,其实现将会作为C++11标准的一部分.很多编译器对C++11 ...
- 原创教程:SpagoBI4.2汉化及配置Mysql数据库教程
SpagoBI4.2汉化及配置Mysql数据库教程 商务智能套件SpagoBI提供一个基于J2EE的框架用于管理BI对象如报表.OLAP分析.仪表盘.记分卡以及数据挖掘模型等的开源BI产品.它提供的B ...
- lua中常量的实现及表的深拷贝实现
废话:好久没在这里写博客了...主要原因是我买了个域名hanxi.info并在github上搭建了个人博客... lua中默认是没有c中的const常量的,在csdn上找到了一个使用setmetata ...
- SDN论坛看到BW的问题及相关解答
SDN论坛看到BW的问题及相关解答 链接: http://blog.sina.com.cn/s/blog_5c58e3c70100r1ou.html 现在有一个 QUERY 运行十分慢 , 所以我想在 ...
- mvc 方法只允许ajax访问
有时候我们写一些方法 只想在ajax使用 其他的不想暴露 就可以对方法进行限制 如下: [AttributeUsage(AttributeTargets.Method)] public class ...
- 解决linux下主机名变bogon的问题
早上起来发现 linux主机名变为bogon bogon是指那些不该出现在internet路由表中的地址吧这些地址应该包括:1,私有地址如10,172.16-32,192.168.....2,还未正式 ...
- “You must not call setTag() on a view Glide is targeting” 解决
报错原因大致是因为Glide加载的iamgeView调用了setTag()方法导致的错误, 因为Glide已经默认为ImageView设置的Tag. 解决办法:自定义一个Application,在里面 ...