Project Euler:Problem 57 Square root convergents
来源:互联网 发布:布点算法 编辑:程序博客网 时间:2024/06/06 02:48
It is possible to show that the square root of two can be expressed as an infinite continued fraction.
√ 2 = 1 + 1/(2 + 1/(2 + 1/(2 + ... ))) = 1.414213...
By expanding this for the first four iterations, we get:
1 + 1/2 = 3/2 = 1.5
1 + 1/(2 + 1/2) = 7/5 = 1.4
1 + 1/(2 + 1/(2 + 1/2)) = 17/12 = 1.41666...
1 + 1/(2 + 1/(2 + 1/(2 + 1/2))) = 41/29 = 1.41379...
The next three expansions are 99/70, 239/169, and 577/408, but the eighth expansion, 1393/985, is the first example where the number of digits in the numerator exceeds the number of digits in the denominator.
In the first one-thousand expansions, how many fractions contain a numerator with more digits than denominator?
找规律,大数加法
#include <iostream>#include <string>using namespace std;string strplus(string a, string b){int lena = a.length();int lenb = b.length();int len;if (lena <= lenb){int gap = lenb - lena;string c;c.resize(gap, '0');a = c + a;len = lenb;}else{int gap = lena - lenb;string c;c.resize(gap, '0');b = c + b;len = lena;}int flag = 0;string ans = "";for (int i = len - 1; i >= 0; i--){int tmp = a[i] + b[i] - '0' - '0' + flag;flag = tmp / 10;tmp = tmp % 10;char p = tmp + '0';ans = p + ans;}if (flag == 1)ans = '1' + ans;return ans;}int main(){string a = "3";string b = "2";int count = 0;for (int i = 2; i <= 1000; i++){string tmp = b;b = strplus(a, b);a = strplus(b, tmp);if (a.length() > b.length())count++;}cout << count << endl;system("pause");return 0;}
0 0
- Project Euler:Problem 57 Square root convergents
- Project Euler:Problem 65 Convergents of e
- Project Euler:Problem 80 Square root digital expansion
- 【Project Euler】【Problem 6】Sum square difference
- Project Euler:Problem 92 Square digit chains
- Project Euler Problem 6: Sum square difference
- Project Euler Problem 92 Square digit chains
- Project Euler Problem 57
- Project Euler problem 57
- Project Euler:Problem 64 Odd period square roots
- Euler Project Problem 6
- project euler problem 11
- Project Euler Problem 81
- Project Euler Problem 60
- Project Euler Problem 59
- Project Euler Problem 58
- Project Euler Problem 16
- Project Euler Problem 30
- 【C++ 基础】——引用
- 2015070707 - 求助
- 每天一个linux命令(8):cp 命令
- Ardunio_PWM 原理及实现
- 如何抓取JS动态输出(非ajax)的电话号码
- Project Euler:Problem 57 Square root convergents
- Java中的继承与组合
- Python coding rules和标准库
- 全局网站标志
- Gas Station
- Foundation框架-05 NSNumber和NSValue
- C++ cin系列与get系列 函数 实现 用例 浅析
- Ubuntu 12.04 与Eclipse C++部署
- something about Android activity