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 ...
随机推荐
- SQL语句创建函数
----先create,再alter alter function fuc (@userid int,@strWhere varchar(max),@strWhere2 varchar(max) ) ...
- nginx-->基本使用
Nginx基本使用 一.下载 http://nginx.org/en/download.html 二.解压文件 在当前文件夹下通过终端就可以操作nginx nginx -v 三.配置详解 #use ...
- 在使用spring中的ContextConfiguration、test注解时出现的错误
错误: 在使用测试注解时出现ContextConfiguration注解和test注解无法正常导包使用的编译异常,如图: 解决办法: 将pom.xml文件中以下依赖管理 中的<scope> ...
- 《剑指offer》面试题16 反转链表 Java版
(输入链表的头节点,反转链表) 书中方法:对于一个链表,我们只能从头往后遍历,如果要反转,我们需要更改当前节点的next域指向前一个节点,此时链表断开,为了能继续修改下一个节点的next域,我们还要维 ...
- Python之文件和异常IO
文件和异常 读写文本文件 读取文本文件时,需要在使用open函数时指定好带路径的文件名(可以使用相对路径或绝对路径)并将文件模式设置为'r'(如果不指定,默认值也是'r'),然后通过encoding参 ...
- apache2.4 只允许合法域名访问网站 禁止使用ip、非法域名访问
1.ip访问禁用ip访问 只能对应端口有效<VirtualHost *:80> ServerName xx.xx.xx.xx ServerAlias * <Location /> ...
- asp.net Base64加解密
1.前端 JS: /* * base64.js * * Licensed under the BSD 3-Clause License. * http://opensource.org/license ...
- k3 cloud中获取自己开发的单据
设置基础资料(业务对象).系统自带用单据
- vue.js(11)--案例--关键字搜索列表
关键字搜索品牌案例 (1)页面布局 <div class="app"> <div class="panel panel-primary"> ...
- 逐行读取txt文件,分割,写入txt。。。上传,下载
s = [] f = open('querylist.txt','r') #由于我使用的pycharm已经设置完了路径,因此我直接写了文件名 for lines in f: ls = lin ...