2 条题解
-
1
#include <bits/stdc++.h> using namespace std; int main() { int a[3]; cin >> a[0] >> a[1] >> a[2]; sort(a,a+3); if(a[0]+a[1]<=a[2]) { cout << "Not triangle" << endl; return 0; } if(a[0]*a[0]+a[1]*a[1]==a[2]*a[2]) { cout << "Right triangle" << endl; } else if(a[0]*a[0]+a[1]*a[1]>a[2]*a[2]) { cout << "Acute triangle" << endl; //A cute triangle =w= } else { cout << "Obtuse triangle" << endl; } if(a[0]==a[1]) { if(a[1]==a[2]) { cout << "Isosceles triangle" << endl; cout << "Equilateral triangle" << endl; } else { cout << "Isosceles triangle" << endl; } } else { if(a[1]==a[2]) { cout << "Isosceles triangle" << endl; } } return 0; }
-
1
对输入的数字从小到大排序以避免啰嗦的判断写法,注意 时也是无法组成三角形的
#include <bits/stdc++.h> using namespace std; int main() { int a[3]; cin >> a[0] >> a[1] >> a[2]; sort(a,a+3); if(a[0]+a[1]<=a[2]) { cout << "Not triangle" << endl; return 0; } if(a[0]*a[0]+a[1]*a[1]==a[2]*a[2]) { cout << "Right triangle" << endl; } else if(a[0]*a[0]+a[1]*a[1]>a[2]*a[2]) { cout << "Acute triangle" << endl; //A cute triangle =w= } else { cout << "Obtuse triangle" << endl; } if(a[0]==a[1]) { if(a[1]==a[2]) { cout << "Isosceles triangle" << endl; cout << "Equilateral triangle" << endl; } else { cout << "Isosceles triangle" << endl; } } else { if(a[1]==a[2]) { cout << "Isosceles triangle" << endl; } } return 0; }
检查了一下我之前写的代码,发现它现在不能通过新的测试点 #6,因为它其实是有缺陷的:当 但 时它只会输出一行
Acute triangle
而不会输出Isosceles triangle
,例如2 5 5
,5 2 5
,5 5 2
这样的输入很明显是等腰三角形。#include <bits/stdc++.h> using namespace std; int a[3]; int main() { scanf("%d%d%d", &a[0], &a[1], &a[2]); sort(a, a + 3); if((a[0] + a[1]) < a[2]) { printf("Not triangle\n"); return 0; } if((a[0] * a[0]) + (a[1] * a[1]) == (a[2] * a[2])) printf("Right triangle\n"); if((a[0] * a[0]) + (a[1] * a[1]) > (a[2] * a[2])) printf("Acute triangle\n"); if((a[0] * a[0]) + (a[1] * a[1]) < (a[2] * a[2])) printf("Obtuse triangle\n"); if(a[0] == a[1]) if(a[1] == a[2]) { printf("Isosceles triangle\n"); printf("Equilateral triangle\n"); } else printf("Isosceles triangle\n"); return 0; }
- 1
信息
- ID
- 4639
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 2
- 标签
- (无)
- 递交数
- 17
- 已通过
- 13
- 上传者