博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
scau 1079 三角形(暴力)
阅读量:7221 次
发布时间:2019-06-29

本文共 2356 字,大约阅读时间需要 7 分钟。

1079 三角形

时间限制:500MS  内存限制:65536K提交次数:283 通过次数:82

题型: 编程题   语言: G++;GCC

Description

著名的数学家毕达哥拉斯可能从来都不曾想过有人居然会问他这样的一个问题:给出一个整数,存在多少个直角三角形,它的某一条边的长度等于这个整数,而且其他边的长度也是整数。既然毕达哥拉斯不可能预见到有计算机的出现,如果他回答不出来,那谁又能责怪他呢?但是现在既然你有了计算机,那么回答不出来就说不过去了。



输入格式

 第一行有一个整数n,代表有多少个数据(1<=n<=20)。接下来有n行,每行代表一个数据。一个数据就是一个整数a
i(a<=i<=n,1<=a
i<=100)。


输出格式

每个数据都必须有相应的输出。两个数据的输出之间有一个空行。最后一个测试数据的输出后不要加空行。对于每一个数据,如果找不到解,则输出一个空行。如果找到解,就把符合条件的所有直角三角形输出。每个三角形占一行,输出该三角形的另外两条
边,必须先输出长边,然后一个逗号,再输出短边。两个三角形之间不能有空行,而且必须按照长边降序排列。


 

输入样例

22012


 

输出样例

101,9952,4829,2125,1516,1237,3520,1615,9

13,5

 

****************************************************************************************************************

本题要用到模拟,而且还要考虑输入a边长时,a可能为直角边或者是斜边。

 

还有一个重要的是,当a为直角边的时候,斜边最长为多少?

 

还有就是输出格式从大到小的数排列。还有就是当a是斜边的时候怎么解决输出重复的问提。

****************************************************************************************************************

方案1(作者最开始的源码)

 

#include 
int s[50];int main(){ int n, i, a, x, y,flag; scanf("%d",&n); for(i=0;i
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
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 
#include
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教的,感觉简单一些。

 

转载于:https://www.cnblogs.com/denghaiquan/p/6666089.html

你可能感兴趣的文章
告诉你WHT中文站是什么?
查看>>
4、Juniper SSG520 PPTP映射到ROS后MAC无法连接解决方法
查看>>
利用批处理文件来建立一个记录3389登陆者信息
查看>>
Linux 系统下双机HA的实现
查看>>
02_swarm mode key concepts
查看>>
Eclipse打包插件Fat Jar 解压打包
查看>>
Apache Shiro 使用手册
查看>>
CentOS mini 6.5 安装DB2 Express-C 问题处理记录
查看>>
DirectByteBuffer
查看>>
Docker Compose文件详解 V2
查看>>
Memcached的原理与应用(未完)
查看>>
基于 Confluence 6 数据中心的 SAML 单点登录设置你的身份提供者
查看>>
mysql总结
查看>>
Navicat for MySQL版本更新至v11.2.12,修复多项问题|附下载
查看>>
整理 JAVA中的IO流 (字符流和字节流两个大类)
查看>>
uefi与win8 (根据网络资料整理)
查看>>
Eclipse优化
查看>>
Log4j tutorial with Tomcat examples
查看>>
Kong 网关
查看>>
三层结构视频中的DBHelper.cs
查看>>