数论 - 高精度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有例如以下规律: ...
随机推荐
- 特征工程(Feature Enginnering)学习记要
最近学习特征工程(Feature Enginnering)的相关技术,主要包含两块:特征选取(Feature Selection)和特征抓取(Feature Extraction).这里记录一些要点 ...
- Ubuntu下无法安装sun-java6-jdk的解决办法
http://blog.sina.com.cn/s/blog_6296abc601018p86.html 这个帖子是讲怎么添加一个新的源, deb http://us.archive.ubuntu.c ...
- iphone/ipad/ipod设置VPN(pptp连接方式)
一.点击桌面上的-设置-图标进入设置(如图) 二.点击-通用-进入通用设置 三.点击-VPN-进入VPN设置(如图) 四.点击添加VPN设置进行设置 五.选择并连接
- Codeforces Round #382 (Div. 2)C. Tennis Championship 动态规划
C. Tennis Championship 题目链接 http://codeforces.com/contest/735/problem/C 题面 Famous Brazil city Rio de ...
- Codeforces Round #292 (Div. 1) C. Drazil and Park 线段树
C. Drazil and Park 题目连接: http://codeforces.com/contest/516/problem/C Description Drazil is a monkey. ...
- 如何在使用MAMP环境下安装MySQLdb
我的电脑上没有安装XAMPP,而是安装了MAMP PRO,其实两者都差不多,都是PHP+MySQL+Apache的集成环境,只是MAMP的GUI界面更华丽一些,但是也更复杂一些. 好了不说这些,说说问 ...
- H5页面设计器,仿有赞商城页面在线设计器,比富文本框更友好的内容编辑器
基本上每个web应用,都会牵扯到内容编辑,尤其是移动的web应用,微信开发之类的.页面内容自定义是最常用的功能了,之前大部分解决方案都是采用富文本框编辑器kindeditor,ueditor,cked ...
- 算法 - 求两个自然数的最小公倍数(C++)
//************************************************************************************************** ...
- JQM[jquery mobile] 实战经验汇总
动态装载的子页面(data-role=”page”),完全不用page div之外的tag,也不会起作用.子页面的javascript脚本必须写在page的</div>之前. 切换按钮(a ...
- 修改dll版本号处理未能加载“******”,或找不到动态链接库依赖的项
<dependentAssembly> <assemblyIdentity name="System.Web.WebPages" publicKeyToken=& ...