scau 1079 三角形(暴力)
</pre>1079 三角形</h1></center><p align="center" style="margin-top:0px; margin-bottom:15px; padding-top:0px; padding-bottom:0px; line-height:24px; color:rgb(42,42,42); font-family:Verdana,Tahoma,Arial,sans-serif; font-size:14px; background-color:rgb(250,252,255)">时间限制:500MS 内存限制:65536K提交次数:283 通过次数:82</p><p align="center" style="margin-top:0px; margin-bottom:15px; padding-top:0px; padding-bottom:0px; line-height:24px; color:rgb(42,42,42); font-family:Verdana,Tahoma,Arial,sans-serif; font-size:14px; background-color:rgb(250,252,255)">题型: 编程题 语言: G++;GCC</p><p align="left" style="margin-top:0px; margin-bottom:15px; padding-top:0px; padding-bottom:0px; line-height:24px; color:rgb(42,42,42); font-family:Verdana,Tahoma,Arial,sans-serif; font-size:14px; background-color:rgb(250,252,255)"></p><h1 style="margin:0px 0px 15px; padding:0px; display:inline; background-color:rgb(250,252,255); color:rgb(96,96,96); font-size:18px; letter-spacing:-1px; font-family:Verdana,Tahoma,Arial,sans-serif">Description</h1><span style="color:rgb(42,42,42); font-family:Verdana,Tahoma,Arial,sans-serif; font-size:14px; background-color:rgb(250,252,255)"></span><pre style="color:rgb(42,42,42); font-size:14px; background-color:rgb(250,252,255)">著名的数学家毕达哥拉斯可能从来都不曾想过有人居然会问他这样的一个问题:给出一个整数,存在多少个直角三角形,
它的某一条边的长度等于这个整数,而且其他边的长度也是整数。既然毕达哥拉斯不可能预见到有计算机的出现,
如果他回答不出来,那谁又能责怪他呢?但是现在既然你有了计算机,那么回答不出来就说不过去了。
输入格式
第一行有一个整数n,代表有多少个数据(1<=n<=20)。接下来有n行,每行代表一个数据。一个数据就是一个整数ai(a<=i<=n,1<=ai<=100)。
输出格式
每个数据都必须有相应的输出。两个数据的输出之间有一个空行。最后一个测试数据的输出后不要加空行。
对于每一个数据,如果找不到解,则输出一个空行。如果找到解,就把符合条件的所有直角三角形输出。每个三角形占一行,输出该三角形的另外两条
边,必须先输出长边,然后一个逗号,再输出短边。两个三角形之间不能有空行,而且必须按照长边降序排列。
输入样例
2
20
12
输出样例
101,99
52,48
29,21
25,15
16,12 37,35
20,16
15,9
13,5
****************************************************************************************************************
本题要用到模拟,而且还要考虑输入a边长时,a可能为直角边或者是斜边。
还有一个重要的是,当a为直角边的时候,斜边最长为多少?
还有就是输出格式从大到小的数排列。还有就是当a是斜边的时候怎么解决输出重复的问提。
****************************************************************************************************************
方案1(作者最开始的源码)
#include <stdio.h>
int s[50];
int main()
{
int n, i, a, x, y,flag;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&s[i]); for(i=0;i<n;i++)
{
a=s[i];flag=0; //a作为直角边
for(y=2501;y>0;y--)//输入为100时最大的斜边是2501
{
for(x=y-1;x>0;x--)
{
if(a*a+x*x==y*y)
{
printf("%d,%d\n",y,x);
flag=1;
}
}
} //a为斜边
int judge=0;
for(y=1;y<a;y++)
{
for(x=a-y+1;x<a+y&&x>judge;x++)//可以直接x>y,一开始没想到
{
if(x*x+y*y==a*a)
{
judge=y;
printf("%d,%d\n",x,y);
flag=1;
}
}
}
if(flag==0) printf("\n"); if(i!=n-1) printf("\n");
}
return 0;
}
********************************************************************************************************
方案2(优化过)
#include <stdio.h>
#include<math.h>
void work()
{
int a,i,j;
scanf("%d",&a);
for(i=2501;i>a;i--)//a为直角边时
{
j=(int)sqrt(i*i-a*a);
if(a*a+j*j==i*i&&i>j)
printf("%d %d\n",i,j);
} for(i=a-1;i>0;i--)
{
j=(int)sqrt(i*i-a*a);
if(a*a+j*j==i*i&&i>j)
printf("%d %d\n",i,j);
}
}
if(flag==0)
printf("\n");
}
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
work();
if(n)
printf("\n");
}
return 0;
}
第二种方法dalao教的,感觉简单一些。
scau 1079 三角形(暴力)的更多相关文章
- 【BZOJ3251】树上三角形 暴力
[BZOJ3251]树上三角形 Description 给定一大小为n的有点权树,每次询问一对点(u,v),问是否能在u到v的简单路径上取三个点权,以这三个权值为边长构成一个三角形.同时还支持单点修改 ...
- 勾股数专题-SCAU-1079 三角形-18203 神奇的勾股数(原创)
勾股数专题-SCAU-1079 三角形-18203 神奇的勾股数(原创) 大部分的勾股数的题目很多人都是用for来便利,然后判断是不是平方数什么什么的,这样做的时候要对变量类型和很多细节都是要掌握好的 ...
- 【BZOJ1201】[HNOI2005]数三角形(暴力)
[BZOJ1201][HNOI2005]数三角形(暴力) 题面 BZOJ 洛谷 题解 预处理每个点向四个方向可以拓展的最大长度,然后钦定一个点作为三角形的某个顶点,暴力枚举三角形长度,检查这样一个三角 ...
- bzoj 1201[HNOI2005]数三角形 1202 [HNOI2005]狡猾的商人 暴力 权值并查集
[HNOI2005]数三角形 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 349 Solved: 234[Submit][Status][Disc ...
- 【bzoj3251】树上三角形 朴素LCA+暴力
题目描述 给定一大小为n的有点权树,每次询问一对点(u,v),问是否能在u到v的简单路径上取三个点权,以这三个权值为边长构成一个三角形.同时还支持单点修改. 输入 第一行两个整数n.q表示树的点数和操 ...
- HihoCoder1642 : 三角形面积和([Offer收割]编程练习赛37)(求面积)(扫描线||暴力)(占位)
描述 如下图所示,在X轴上方一共有N个等腰直角三角形.这些三角形的斜边与X轴重合,斜边的对顶点坐标是(Xi, Yi). (11,5) (4,4) /\ /\(7,3) \ / \/\/ \ / /\/ ...
- scau 17967 大师姐唱K的固有结界 分类暴力 + RMQ
由于能放两次,那么分类, 1.连续使用,(这个直接O(n^2)暴力) 2.分开使用. 分开使用的话,首先暴力枚举,用T时间,能从第1个位置,唱到第几首歌,然后剩下的就是从pos + 1, n这个位置, ...
- Java实现 LeetCode 812 最大三角形面积 (暴力)
812. 最大三角形面积 给定包含多个点的集合,从其中取三个点组成三角形,返回能组成的最大三角形的面积. 示例: 输入: points = [[0,0],[0,1],[1,0],[0,2],[2,0] ...
- [LeetCode] Triangle 三角形
Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent n ...
随机推荐
- spring,springMVC的优点和区别
spring 是是一个开源框架,是为了解决企业应用程序开发,功能如下◆目的:解决企业应用开发的复杂性◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能◆范围:任何Java应用简单 ...
- Java 位运算符和移位运算符
一,运算的位运算符: & ~ | ^ 主要是对二进制的位计算 : & : 两个操作数中位都为1 结果才为1 其他结果为0 forExample: 128 ...
- Struts2异常:HTTP Status 404 - There is no Action mapped for action name addBook.
HTTP Status 404 - There is no Action mapped for action name addBook. 在地址栏进行访问的时候,出现了这个错误信息,导致出现此异常的原 ...
- quartz任务调度的详解
1.Quartz包含3个核心(调度器.作业类.触发器) (1).作业类:只需要实现org.quartz.job接口,同时包含里面的一个方法体execute()[这是被调度的作业体] (2).调度器:是 ...
- FastDFS搭建单机图片服务器(二)
防丢失转载:https://blog.csdn.net/MissEel/article/details/80856194 根据 分布式文件系统 - FastDFS 在 CentOS 下配置安装部署 和 ...
- ajax与json总结
1.jquery中调用ajax方法 $.ajax({ async:true, type:"post", url:"xxxServlet", data:{&quo ...
- 【洛谷 p2672】推销员
推销员[题目链接] 好了为了凑字数先把题目复制一下: 好了题解第一篇正解: 首先输入,莫得什么好说的: scanf("%d",&n); ;i<=n;i++) scan ...
- [BZOJ 3295] [luogu 3157] [CQOI2011]动态逆序对(树状数组套权值线段树)
[BZOJ 3295] [luogu 3157] [CQOI2011] 动态逆序对 (树状数组套权值线段树) 题面 给出一个长度为n的排列,每次操作删除一个数,求每次操作前排列逆序对的个数 分析 每次 ...
- 【推荐系统】知乎live入门
参考链接: 知乎推荐系统live:姚凯飞推荐系统live 目录 1.推荐概览与框架 2.细节补充 3.召回 4.排序 5.常用技能与日常工作 5.用户画像-特征工程 6.相关经验 7.推荐考试拿分路径 ...
- vue函数防抖和节流
Vue函数防抖和节流https://zhuanlan.zhihu.com/p/72363385 <template> <div> <input type='text' v ...