PE 25 1000-digit Fibonacci number
来源:互联网 发布:日本杂志模特知乎 编辑:程序博客网 时间:2024/04/20 05:03
#include <iostream>#include <list>typedef char Digit;class BigInt{public:BigInt () { };BigInt (unsigned int i);BigInt (const char* i);BigInt operator+ (const BigInt& big);int size() const { return number.size(); }private:std::list<Digit> number;};BigInt::BigInt (unsigned int i){ while (i) { number.push_front (i % 10); i/=10; }}BigInt::BigInt (const char* i){ for(const char* it=i;*it != 0; it++)number.push_back(*it-'0');}BigIntBigInt::operator+ (const BigInt& big){ char carry = 0; char tmp; BigInt result; std::list<Digit>::reverse_iterator it; std::list<Digit>::const_reverse_iterator it2; for (it = number.rbegin(), it2 = big.number.rbegin();it != number.rend() || it2 != big.number.rend();it != number.rend() ? it++ : it, it2 != big.number.rend() ? it2++ : it2) { tmp = (it != number.rend() ? *it:0) +(it2 != big.number.rend() ? *it2:0) +carry; if (tmp > 9) { tmp = tmp - 10; carry = 1; } else { carry = 0; } result.number.push_front(tmp); } if (carry) result.number.push_front(1); return result;}int main(void){ BigInt prev2 = 1; BigInt prev1 = 1; BigInt current = prev1 + prev2; int term = 3; while (current.size() != 1000) { term++; prev2 = prev1; prev1 = current; current = prev1 + prev2; } std::cout << "Solution:" << term << std::endl;return 0;}
Answer:
4782 0 0
- PE 25 1000-digit Fibonacci number
- Problem 25:1000-digit Fibonacci number
- 25 1000-digit Fibonacci number - Project Euler
- project euler 25 1000-digit Fibonacci number
- Problem 25 1000-digit Fibonacci number (高精度fibonacci)
- No_25:1000-digit Fibonacci number
- projecteuler---->problem=25----1000-digit Fibonacci number
- 欧拉工程第25题:1000-digit Fibonacci number
- Project Euler:Problem 25 1000-digit Fibonacci number
- Project Euler Problem 25 1000-digit Fibonacci number
- Project Euler Problem 25 :1000-digit Fibonacci number
- Fibonacci Number
- Fibonacci number
- Fibonacci Number
- Fibonacci Number
- Fibonacci number
- PE 16 Power digit sum
- PE 20 Factorial digit sum
- Java 12
- spring.spring mvc--SpringMVC拦截器简单使用
- 使用tinyxml封装或解析xml形式字符串
- libevent源码深度剖析三
- MapReduce工作原理详解
- PE 25 1000-digit Fibonacci number
- 最小生成树kruskal算法的代码实现
- java实现简单的二叉树
- thinkPHP笔记-----前台跳转到后台执行函数
- HTML5+CSS3立方体3D翻转效果
- Codeforces Round #296 (Div. 2) (ABCDE题解)
- 黑马程序员_日记4_Java继承,抽象类和接口
- libevent源码深度剖析二
- CSS3鼠标滑动动画按钮特效