ZOJ 1962 How Many Fibs?
来源:互联网 发布:淘宝宝贝隐形降权查询 编辑:程序博客网 时间:2024/06/18 15:04
首先预处理求出100位以内的所有fibonacci数,然后找范围.
#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <algorithm>using namespace std;char fib[481][103] = {"1","2",NULL};int f1[105],f2[105],res[205], n;char a[105], b[105];int charToInt(int buf[], char src[]){memset(buf, 0, sizeof(buf));int len = strlen(src);for(int i = 0; i < len; ++i){buf[i] = src[i] - '0';}return len;}int intToChar(char buf[], int src[], int len){memset(buf, 0, sizeof(buf));for(int i = 0; i < len; ++i){buf[i] = src[i] + '0';}return len;}int bigNumAdd(char s1[], char s2[]){int l1 = strlen(s1), l2 = strlen(s2);charToInt(f1, s1), charToInt(f2, s2);int b = max(l1, l2);memset(res, 0, sizeof(res));for(int i = 0; i < b; ++i){res[i] = f1[i] + f2[i];}int len = b;for(int i = 0; i < b; ++i){if(res[i] >= 10){res[i + 1] += res[i] / 10;res[i] %= 10;len = max(i + 2, len);}}return len;}void init(){n = 2;int len = 0;for(; len < 101; ++n){len = bigNumAdd(fib[n - 2], fib[n - 1]);intToChar(fib[n], res, len);};for(int i = 0; i < n; ++i){int len = strlen(fib[i]);reverse(fib[i], fib[i] + len);}}bool cmp(const char * s1, const char * s2){int l1 = strlen(s1), l2 = strlen(s2);return l1 < l2 || (l1 == l2 && strcmp(s1, s2) < 0);}int main(){init();while(scanf("%s %s", a, b)){if(!strcmp(a, "0") && !strcmp(b, "0"))break;int p1 = lower_bound(fib, fib + n, a, cmp) - fib;int p2 = upper_bound(fib, fib + n, b, cmp) - fib;printf("%d\n", p2 - p1);}return 0;}
- zoj 1962 How Many Fibs
- ZOJ 1962 How Many Fibs?
- ZOJ 1962 How Many Fibs?
- zoj 1962 || poj 2413 How many Fibs?
- zoj 1962 || poj 2413 How many Fibs?(大数~)
- How many fibs
- PKU2413 how many fibs
- How Many Fibs?
- UVa10183 - How Many Fibs?
- HDU1316:How Many Fibs?
- hdu1316 How Many Fibs?
- How many Fibs
- 110601 How many Fibs
- How many Fibs?
- hdu1316 How Many Fibs?
- How Many Fibs? (大数)
- How Many Fibs?
- hdu1316 How Many Fibs?
- 《java并发编程》读书笔记--线程基础
- C++程序设计-第13周 继承与派生(二)
- 函数(一)
- MFC(一)windows
- MFC(二)
- ZOJ 1962 How Many Fibs?
- 编译优化,关于CFLAGS与CXXFLAGS
- request.getParameter()和getAttribute()之间的区别
- Eclipse用法和技巧十一:分栏显示
- 2013年5月20日 21:24:12
- \tutorial_code\ImgProc\Morphology
- ZOJ 1938 Binomial Showdown
- C# BindingNavigator与DataGridView绑定
- AD域中如何批量导入导出账号