projecteuler No.91 Right triangles with integer coordinates
来源:互联网 发布:淘宝一分钱秒杀验证 编辑:程序博客网 时间:2024/05/18 03:53
原文题目链接:
http://projecteuler.net/problem=91
翻译题目链接:
http://pe.spiritzhang.com/index.php/2011-05-11-09-44-54/92-91
通过人数:7727
题目分析:
这道题为一个枚举筛选的模型。因为一共可以涉及到的点的位置不多,于是依直角顶点的位置进行枚举。
一、若直角顶点在第一象限:
int ans = 0;for (int i = 1;i <= 50; i++){for (int j = 1; j <= 50; j++){double k = double(j)/i;double k_ = -1/k; double b_ = j - k_ * i;for (int p = 0; p <= 50; p++){if (p == i)continue;double rr = k_ * p + b_;int r = floor(rr+0.0001);if (rr > 50 + 0.0001 || rr < -0.0001)continue;if (r + 0.0001 > rr)ans++;}}}每个循环体考察了以点(i,j)为直角顶点的可能。
过点(i,j)的与点(i,j)和原点的连线垂直的直线的解析式为:y=k_x+b_
考察这条直线在所要求的区间内的整点数即可。
二、若直角顶点在坐标轴上。
这种情况可以分成直角顶点在x正半轴、y正半轴和原点三种情况,每种情况都很容易求出有2500个直角三角形。于是,一共又增加了7500个三角形。
ans+=7500;
注意的地方:对于浮点型数比大小的操作一定要慎重。不然这题极有可能算错。具体应如何操作详见上面的代码。
以上只是我做题时的解法。
如果有更好的解法、更好的思路,欢迎评论讨论~O(∩_∩)O~
题目分析:
0 0
- projecteuler No.91 Right triangles with integer coordinates
- Project Euler:Problem 91 Right triangles with integer coordinates
- Euler: Integer right triangles
- Project Euler-Integer right triangles
- Problem 39—Integer right triangles
- Project Euler:Problem 39 Integer right triangles
- Problem 39 Integer right triangles (数学)
- 欧拉工程第39题:Integer right triangles
- Project Euler:Problem 75 Singular integer right triangles
- Right Triangles
- Right Triangles
- TOJ Right Triangles II
- No_39Integer right triangles
- FIX Coordinates with windows DDK
- Codeforces 52B Right Triangles
- projecteuler No.205 Dice Game
- projecteuler No.96 Su Doku
- projecteuler No.77 Prime summations
- 在Mac OS X 10.9.1(x86, 64-bit)上配置MySQL数据库
- 编程之美2.21 只考加法的面试题
- UVA 1424 - Salesmen(dp)
- 子类传递参数到多个基类构造函数
- SQL ROW_NUMBER() OVER函数
- projecteuler No.91 Right triangles with integer coordinates
- ogg
- 微信开发中使用$GLOBALS['HTTP_RAW_POST_DATA'],那$GLOBALS['HTTP_RAW_POST_DATA'] 和$_POST的区别是
- mongodb:Unclean shutdown detected
- javascript 小知识
- 逗B少年搞程序01 写个文档这么水真的大丈夫?
- Android中的多线程处理(二)——使用线程池中的线程
- 关于安卓上java的引用介绍
- poj 1135 Domino Effect