[FDU1669] 直角三角形
来源:互联网 发布:查看oracle数据库编码 编辑:程序博客网 时间:2024/04/30 13:56
题目描述
求满足以a,b为直角边,c为斜边,且满足a+b+c<=L的直角三角形的个数。
输入格式
输入数据有多组,每组占一行,包含一个整数L(L<=2000000)。
输出格式
每组输入输出一个整数即满足题目已知条件的三角形的个数。
样例数据
样例输入
12
40
样例输出
1
5
题目分析
比poj1305更水的存在
做法大体相似,就不赘述了
源代码
#include<algorithm>#include<iostream>#include<iomanip>#include<cstring>#include<cstdlib>#include<vector>#include<cstdio>#include<cmath>#include<queue>using namespace std;typedef long long LL;inline const int Get_Int() { int num=0,bj=1; char x=getchar(); while(x<'0'||x>'9') { if(x=='-')bj=-1; x=getchar(); } while(x>='0'&&x<='9') { num=num*10+x-'0'; x=getchar(); } return num*bj;}LL Limit,ans=0;LL Gcd(LL x,LL y) { if(y==0)return x; else return Gcd(y,x%y);}int main() { while(scanf("%lld",&Limit)!=EOF) { ans=0; for(int n=1; n<=sqrt(Limit); n++) for(int m=n+1; m<=sqrt(Limit); m++) { if(m*m+n*n>Limit)break; if((m%2!=n%2)&&(Gcd(m,n)==1)) { LL x=m*m-n*n,y=2*m*n,z=m*m+n*n; LL Now=1; while(Now*x+Now*y+Now*z<=Limit) { ans++; Now++; } } } printf("%lld\n",ans); } return 0;}
0 0
- [FDU1669] 直角三角形
- 直角三角形
- 直角三角形
- 直角三角形
- 直角三角形
- 直角三角形
- 直角三角形
- 直角三角形
- 倒直角三角形
- 构成直角三角形
- 直角三角形(*)
- 打印直角三角形
- 正直角三角形
- 打印直角三角形
- 【模拟】 直角三角形
- 直角三角形类
- 打印直角三角形
- d014: 判断直角三角形
- 译-- Lambda Expressions >=java SE8 (Lambda表达式详解)
- Qt小项目-随机抽取系统
- linux设备驱动归纳总结(三):3面向对象思想和lseek
- 2016再见,2017你好
- ubuntu下安装smartgit
- [FDU1669] 直角三角形
- C#获取操作系统信息
- GitHub创建SSH远程登陆
- 这本算法书写了七年
- Calcite中的流式SQL
- 华为穿戴数据同步到微信运动
- Http协议请求响应处理
- Volley框架使用介绍
- socketio 服务器推送