FZU1669 Right-angled Triangle【毕达哥拉斯三元组】
主题链接:
http://acm.fzu.edu.cn/problem.php?pid=1669
题目大意:
求满足以a、b为直角边,c为斜边,而且满足a + b + c <= L的直角三角形的个数。
思路:
勾股定理。a、b、c也就是本原毕达哥拉斯三元组,则满足:
x = m^2 - n^2
y = 2*m*n
z = m^2 + n^2
当中m > n,且若m为奇数,则n为偶数。若m为偶数。则n为奇数。
枚举m、n,然后将三元组乘以i倍。保证 i * (x + y + z)在所给范围内(2 * m^2 + 2 * m*n <= L),
就能够求出全部满足条件的三元组。
AC代码:
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;bool flag[1001000];int GCD(int a,int b)
{if(b == 0)return a;return GCD(b,a%b);
}int main()
{int N;while(cin >> N){int temp,m,n,i,ans,x,y,z;ans = 0;memset(flag,false,sizeof(flag));temp = sqrt(N*1.0);for(n = 1; n <= temp; ++n){for(m = n+1; m <= temp; ++m){if(2*m*m + 2*m*n > N)break;if((n&1) != (m&1)){if(GCD(m,n) == 1){x = m*m - n*n;y = 2*m*n;z = m*m + n*n;for(int i = 1; ; ++i){if(i*(x+y+z) > N)break;ans++;}}}}}cout << ans << endl;}return 0;
}
版权声明:本文博主原创文章。博客,未经同意不得转载。
FZU1669 Right-angled Triangle【毕达哥拉斯三元组】相关推荐
- 特殊的不定方程——毕达哥拉斯三元组(勾股数组)
毕达哥拉斯三元组:若正整数x,y,z满足下x^2+y^2=z^2.满足这个方程的正整数三元组被称为毕达哥拉斯三元组. 本原毕达哥拉斯三元组:若gcd(x,y,a)=1,则正整数三元组被称为本原毕达哥拉 ...
- 数论 —— 毕达哥拉斯三元组
[定义] 满足 的 三元组称为毕达哥拉斯三元组,当 时,称其为本原的. 毕达哥拉斯三元组,也称为勾股数. [性质] 由 x.y.z 构成的三元组 (x,y,z) ,其中 y 为偶数,那么由他们构 ...
- 7 特殊毕达哥拉斯三元组
毕达哥拉斯三元组是三个自然数a < b < c组成的集合,并满足 a^ + b^ = c^ 例如,3^ + 4^ = 9 + 16 = 25 = 5^. 有且只有一个毕达哥拉斯三元组满足 ...
- 4-2毕达哥拉斯三元组
一个直角三角形具有边长均为整数的三条边.直角三角形边长的这组整数值称为毕达哥拉斯三元组(中国称为勾股数).这三条边必须满足这样的关系:两条直角边的平方之和必须等于直角三角形斜边的平方.从键盘输入一个正 ...
- 毕达哥拉斯三元组及本原毕达哥拉斯三元组
毕达哥拉斯定理:勾股定理又称商高定理.毕达哥拉斯定理,是平面几何中一个基本而重要的定理.勾股定理说明,平面上的直角三角形的两条直角边的长度(古称勾长.股长)的平方和等于斜边长(古称弦长)的平方.反之, ...
- 7-204 毕达哥拉斯三元组
7-204 毕达哥拉斯三元组 一个直角三角形具有边长均为整数的三条边.直角三角形边长的这组整数值称为毕达哥拉斯三元组(中国称为勾股数).这三条边必须满足这样的关系:两条直角边的平方之和必须等于直角三角 ...
- 勾股数(毕达哥拉斯三元组)
勾股数(毕达哥拉斯三元组) 勾股数:可以构成一组直角三角形边长的三个正整数. eg: 3 4 5 勾股数的规律: 1)任何大于1的正奇数a=2k+1,其平方t=a^2仍为奇数,且将平方数拆成两个相邻的 ...
- 【POj1305】毕达哥拉斯三元组
1.题目链接.这个题目是在求这样的一个问题:三个正整数x,y,z都小于等于N,这三个数组成一个三元组(x,y,z).其中,他们两两互质,也就是说(x,y,z)=1.并且x*x+y*y=z*z.求出这样 ...
- C语言求边长500以内的毕达哥拉斯三元组的个数
#include<stdio.h> #include<math.h> #include<stdlib.h>int main() {int side1; //直角边1 ...
最新文章
- Linux_指令杂烩
- adb通信协议分析以及实现(二):adb服务进程发现设备
- Linux网络编程——I/O复用之poll函数
- 谈谈晋升-互联网民工篇
- Java:希望每天叫醒你的不是闹钟而是梦想!
- 社保基金入市规模或达3000亿元
- SonarLint各种提示的意思
- 使用ActionSupport验证登录
- 通达信 缠论分笔、分段DLL插件使用说明
- QImage转yuv420
- Android BT STACK BTU 和 HCI之间的消息传递
- 毕业第一站 | 北京游
- oracle hugepage设置,Linux系统下快速配置HugePages的完整步骤
- 为什么局域网 IP 通常以 192.168 开头而不是 1.2 或者 193.169 ?
- 多个tab页如何共享websocket
- 互联网快讯:京东公布“双11”节奏;猿辅导、掌门教育布局素质教育
- Ubuntu 微信QQ企业微信不能输入中文
- 数据分析《令人心动的offer2》—你心动了吗?
- 生而为人,请务必善良
- 软件测试人还知道大名鼎鼎的compuware性能调优工具吗?该公司撤离中国!