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 ...
随机推荐
- 应用安全 - 代码审计 - Python
flask客户端session导致敏感信息泄露 flask验证码绕过漏洞 CodeIgniter 2.1.4 session伪造及对象注入漏洞 沙箱逃逸
- iis7 https配置方法并且http跳转https
操作场景 本文档指导您如何在 IIS 中安装 SSL 证书. 说明: 本文档以证书名称 www.domain.com 为例. 本文档以操作系统 Windows10 为例.由于操作系统的版本不同,详细操 ...
- Node.js实战11:fs模块初探。
fs模块封装了对文件操作的各种方法,比如同步和异步读写.批量操作.流.监听. 我们还是通常例程学习, 获取目录下的文件清单: var fs =require("fs"); fs.r ...
- <<Java RESTful Web Service实战>> 读书笔记
<<Java RESTful Web Service实战>> 读书笔记 第一章 JAX-RS2.0入门 REST (Representational State ransf ...
- Java设计模式——模板方法设计模式(abstract修饰)
解释: 一个抽象类中,有一个主方法,再定义 1...n 个方法,可以是抽象的,也可以是实际的方法,定义一个类,继承该抽象类,重写抽象方法,通过调用抽象类,实现对子类的调用. 解决的问题: 当功能内部一 ...
- 关于JSON使用要注意的地方
1.json 1.JSON对象;(ES5) 1)JSON.stringify() json---js[json字符串--->JavaScript对象] 2 ...
- AOS and clustering
原文转载:http://sjakalax.blogspot.com/2010/10/aos-and-clustering.html AOS and clustering hi, There s ...
- 读取FTP上的excel文件,并写入数据库
今天遇到一些问题,需要从ftp上读取一些excel文件,并需要将excel中的数据写入到数据库,这样就可以通过管理页面查看这些数据. 我将相关工作分为三步,1.从ftp上读取相关文件,并将excel文 ...
- 异步json发送put或者delete
第一种 put请求或者delete请求 直接写发送的情况 //批量删除 function batchDel() { var ids = []; $("#list-table").f ...
- CentOS7 设置电源选项,待机、睡眠、挂起
设置装有 CentOS7 的笔记本合盖后黑屏进入睡眠模式 systemd 能够处理某些电源相关的 ACPI事件,你可以通过从 /etc/systemd/logind.conf 以下选项进行配置: Ha ...