POJ 2413 How many Fibs?
来源:互联网 发布:win10电脑无法连接网络 编辑:程序博客网 时间:2024/05/16 13:07
大数区间Fibonacci数的个数
const int maxn = 9999 ; // 每位储存4位const int dig = 4 ;class BigNum{ public : int a[60] ; int len ; BigNum(){len = 1 ; memset(a , 0 , sizeof(a)) ;} BigNum(const int) ; BigNum(const char*) ; BigNum operator +(const BigNum &) const ; bool operator >= (const BigNum &) const ; friend ostream& operator <<(ostream &out , const BigNum&T) ;};BigNum::BigNum(const int T){ int t = T ; len = 0 ; memset(a , 0 , sizeof(a)) ; while(t > maxn){ a[len++] = t - t/(maxn+1)*(maxn+1) ; t = t/(maxn+1) ; } a[len++] = t ;}BigNum::BigNum(const char* s){ memset(a , 0 , sizeof(a)) ; int t , i , j , k , id = 0 , l = strlen(s) ; len = l/dig ; if(l%dig) len++ ; for(i = l-1 ; i >= 0 ; i -= dig){ t = 0 ; k = max(0 , i - dig + 1); for(j = k ; j <= i ; j++) t = t*10 + s[j] - '0' ; a[id++] = t ; }}ostream& operator <<(ostream &out , const BigNum&T){ printf("%d" , T.a[T.len-1]) ; for(int i = T.len-2 ; i >= 0 ; i--) printf("%04d" ,T.a[i]) ; return out ;}BigNum BigNum::operator + (const BigNum &T) const{ BigNum s ; s.len = max(len , T.len) ; for(int i = 0 ; i < s.len ; i++){ s.a[i] += a[i] + T.a[i] ; if(s.a[i] > maxn){ s.a[i+1]++ ; s.a[i] %= (maxn+1) ; } } if(s.a[s.len]!=0) s.len++ ; return s ;}bool BigNum::operator>= (const BigNum &T) const{ if(len > T.len) return 1 ; else if(len == T.len){ int i = len-1 ; while(i >= 0 && a[i] == T.a[i]) i-- ; if(i >= 0 && a[i] < T.a[i]) return 0 ; else return 1 ; } else return 0 ;}vector <BigNum> lis ;int main(){ lis.clear() ; lis.push_back(BigNum("1")) ; lis.push_back(BigNum("2")) ; int i , s ; for(i = 2 ; ; i++){ BigNum b = lis[i-1] + lis[i-2] ; if(b.len > 100) break ; lis.push_back(b) ; } BigNum l , r ; char a[108] , b[108] ; while(scanf("%s%s" ,a , b)){ if(strcmp(a , "0")== 0 && strcmp(b , "0") == 0) break ; l = BigNum(a) , r = BigNum(b) ; for(i = s = 0 ; i < lis.size() ; i++){ if(lis[i] >= l && r >= lis[i]) s++ ; } printf("%d\n" , s) ; } return 0 ;}
0 0
- poj 2413 How many Fibs?
- POJ 2413 How many Fibs?
- POJ 2413 How many Fibs?
- POJ 2413 How many Fibs? .
- POJ 2413 How many Fibs? /HDOJ 1316 How Many Fibs?
- poj 2413 java How many Fibs?
- zoj 1962 || poj 2413 How many Fibs?
- hdu 1316 poj 2413 how many Fibs
- POJ 2413 How many Fibs? 笔记
- zoj 1962 || poj 2413 How many Fibs?(大数~)
- POJ 2413 How many Fibs?
- POJ 2413 How many Fibs?(高精度暴力)
- pku 2413 How many Fibs? 【java高精度】
- How many fibs
- PKU2413 how many fibs
- How Many Fibs?
- UVa10183 - How Many Fibs?
- HDU1316:How Many Fibs?
- 杭电 2602 Bone Collector
- C++之练习题11
- Java学习--异常类RuntimeException面试技巧
- 湘潭OJ 1305 成对的字符串
- Python 核心编程第十八章
- POJ 2413 How many Fibs?
- Map的遍历方法
- 素数和,奇数和,偶数和
- NYOJ-216 A problem is easy
- 读取文本中内容,字符串加工生成字典,查询对于合成道具成本价格
- 惊呆!富士康全球第二大客户竟是他
- [Java 15 反射机制 ] 类的生命周期 与 反射总结
- Qtcreator配置、交叉编译arm程序
- 分享微博js代码