ACM复习(7)1079 三角形
来源:互联网 发布:我给男闺蜜飞机知乎 编辑:程序博客网 时间:2024/06/05 16:27
Description
著名的数学家毕达哥拉斯可能从来都不曾想过有人居然会问他这样的一个问题:给出一个整数,存在多少个直角三角形,
它的某一条边的长度等于这个整数,而且其他边的长度也是整数。既然毕达哥拉斯不可能预见到有计算机的出现,
如果他回答不出来,那谁又能责怪他呢?但是现在既然你有了计算机,那么回答不出来就说不过去了。
输入格式 第一行有一个整数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
解题思路
将输入作为最长边,中长半,最短边分别遍历就行
需要注意的是作为最短边时的限制条件:
因为
所以
#include<stdio.h>#include<math.h>int main(){ int n, a, result[1001][2] = {0}, q; double y; scanf("%d", &n); while(n --) { q = 0; scanf("%d", &a); if(a < 3) { if(n == 0) break; else { printf("\n\n"); continue; } } int k = a * a; // 向上取整,避免作为最长边遍历时出现类似5 4 3 和 5 3 4 这样的情况 int t = ceil(sqrt(k / 2.0)); // 作为最短边 for(int i = a; ;i ++) { y = sqrt(k + i * i); if(y + i > k) break; if(y - (int)y < 0.00001) { result[q][0] = (int)y; result[q][1] = i; q ++; } } for(int i = q - 1; i >= 0; i --) printf("%d,%d\n", result[i][0], result[i][1]); q = 0; // 作为中长边 for(int i = a; i >= 1; i --) { y = sqrt(k + i * i); if(y - (int)y < 0.00001) { result[q][0] = (int)y; result[q][1] = i; q ++; } } // 作为最长边 for(int i = a - 1; i >= t; i --) { y = sqrt(k - i * i); if(y - (int)y < 0.00001) { result[q][0] = i; result[q][1] = (int)y; q ++; } } for(int i = 0; i < q; i ++) { if(n == 0 && i == q - 1) printf("%d,%d", result[i][0], result[i][1]); else printf("%d,%d\n", result[i][0], result[i][1]); } if(n != 0) printf("\n"); } return 0;}
阅读全文
0 0
- ACM复习(7)1079 三角形
- ACM-三角形
- ACM-三角形
- [ACM]三角形
- ACM判断三角形(多组输入)
- ACM复习(1)1077 韩信点兵
- ACM复习(2)1078 破密
- ACM复习(6)1144 数星星
- ACM复习(11)8615 快乐
- ACM复习(13)8612 发牌
- ACM复习(14)8613 锁
- ACM复习(15)8614 素数
- C++复习二 三角形图形的输出(一)
- ACM 三角形模板
- ACM练习题-毕达哥拉斯三角形
- ACM 三角形判断
- ACM #1037 : 数字三角形
- ACM-三角形面积
- 几个可以替代百度的搜索引擎
- Android 生成随机颜色值
- iOS
- 解决input输入框中出现undefined的情况:三目运算
- Java找出一个字符串中出现次数最多和第二多的字符
- ACM复习(7)1079 三角形
- android 反编译之dex2jar
- MySQl 存储过程
- IntelliJ Idea 常用快捷键列表
- python3 常用正则匹配表达式
- 浏览器加载 CommonJS 模块的原理与实现
- 11
- 每日新闻预测金融市场的变化_版本1
- 事件分发机制、滑动冲突详细讲解