110507 The Stern-Brocot Number System
2013-10-28 13:05
387 查看
#include <iostream> using namespace std; class SternBrocotNo { public: SternBrocotNo(int x, int y) : m_x(x), m_y(y) {} SternBrocotNo(const SternBrocotNo& other) : m_x(other.m_x), m_y(other.m_y) {} bool operator == (const SternBrocotNo& other) const { return (m_x == other.m_x) && (m_y == other.m_y); } static SternBrocotNo GetMid(const SternBrocotNo& left, const SternBrocotNo& right) { return SternBrocotNo(left.m_x + right.m_x, left.m_y + right.m_y); } bool operator > (const SternBrocotNo& other) const { return (m_x * other.m_y) > (m_y * other.m_x); } private: int m_x, m_y; }; static void OutputSeq( const SternBrocotNo& target, const SternBrocotNo& mid, const SternBrocotNo& left, const SternBrocotNo& right) { if (target == mid) { cout << endl; return; } if (target > mid) { cout << 'R'; SternBrocotNo newMid = SternBrocotNo::GetMid(mid, right); OutputSeq(target, newMid, mid, right); } else { cout << 'L'; SternBrocotNo newMid = SternBrocotNo::GetMid(left, mid); OutputSeq(target, newMid, left, mid); } } static void Test() { SternBrocotNo left(0, 1), right(1, 0), mid(1, 1); int x, y; while(true) { cin >> x >> y; if ((x * y) == 1) return; SternBrocotNo target(x, y); OutputSeq(target, mid, left, right); } } int main(int argc, char* argv[]) { Test(); return 0; }
相关文章推荐
- 10077 - The Stern-Brocot Number System
- The Stern-Brocot Number System(排序二叉树)
- UVa 10077 The Stern-Brocot Number System (数学)
- UVa 10077 - The Stern-Brocot Number System
- uva 10077 The Stern-Brocot Number System
- The Stern-Brocot Number System(排序二进制)
- uva 10077 - The Stern-Brocot Number System
- UVa Problem 10077 The Stern-Brocot Number System (Stern-Brocot 代数系统)
- (挑战编程_5_7)The Stern-Brocot Number System
- UVa Problem Solution: 10077 - The Stern-Brocot Number System
- UVA 10077 The Stern-Brocot Number System
- mysql 启动错误(InnoDB: Operating system error number 13 )
- 通用版1.V - The Fun Number System
- 搞定Oracle SCN -system change number
- POJ 1023 The Fun Number System (递推)
- Oracle System Change Number (SCN)完全筆記
- POJ1023 The Fun Number System
- Oracle SCN(System Chang Number)
- 使用oracle SCN(System Changed Number 系统变更数) 恢复数据的方法
- mariadb日志出现InnoDB: Operating system error number 23 in a file operation