鱼C论坛

 找回密码
 立即注册
查看: 3125|回复: 29

[已解决]提问:最小两条边大于第三边就一定能构成三角形吗?

[复制链接]
发表于 2023-7-28 19:07:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Ewan-Ahiouy 于 2023-7-28 19:14 编辑

rt,困扰我好久

如果提问不正确,请提供一个推翻提问的反例,不然不给最佳
最佳答案
2023-7-28 19:16:45
Ewan-Ahiouy 发表于 2023-7-28 19:14
https://www.luogu.com.cn/record/117876157

my code

一眼发现问题,第8行最后一个下标错了,应该是2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-28 19:07:11 | 显示全部楼层
不是的。要构成一个三角形,任意两边之和必须大于第三边。如果最小的两条边之和小于或等于第三边,就不能构成三角形。这个条件被称为三角不等式定理。所以,最小两条边大于第三边并不一定能构成三角形。
如果问题已经解决,请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-28 19:07:12 | 显示全部楼层
是的,只要三条边的长度满足最小两条边之和大于第三条边的长度,就可以构成一个三角形。这是三角形的一个重要性质,也被称为三角形的三边关系或三角不等式。

假设有一三角形的三边分别为a、b、c,那么构成三角形的条件是:
1. a + b > c
2. a + c > b
3. b + c > a

如果以上三个条件都满足,那么三边a、b、c所构成的就是一个三角形。如果不满足任何一个条件,那么无法构成三角形。

这个性质可以通过几何推导进行证明,也可以直观地理解为:任意两边之和要大于第三边,否则三条边无法将一个封闭的图形构成。

希望这个解答能够解除你的困扰!如果还有其他问题,请随时提问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-28 19:07:25 | 显示全部楼层
最小两条边大于第三边这个条件是构成一个三角形的必要但不充分条件。也就是说,如果有一组边长满足这个条件,它们可以构成一个三角形,但并不是所有满足这个条件的边长组合都能构成三角形。

在C/C++中,我们可以使用以下代码来判断给定的三个边长是否能够构成一个三角形:
#include <stdio.h>int isTriangle(int a, int b, int c) {    if (a <= 0 || b <= 0 || c <= 0) {        return 0; // 任意边长小于等于0,则不能构成三角形    }    if (a + b > c && b + c > a && c + a > b) {        return 1; // 构成三角形    } else {        return 0; // 不能构成三角形    }}int main() {    int a, b, c;    printf("请输入三个整数作为边长:");    scanf("%d %d %d", &a, &b, &c);    if (isTriangle(a, b, c)) {        printf("可以构成三角形\n");    } else {        printf("不能构成三角形\n");    }    return 0;}
以上代码通过 isTriangle() 函数判断给定的三个整数 abc 是否能够构成一个三角形。如果满足条件则返回1,否则返回0。在 main() 函数中,我们通过用户输入的方式获取三个边长,并调用 isTriangle() 函数进行判断。

希望对你有所帮助!

球一个最佳答案谢谢啦!这对我非常重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-28 19:09:26 | 显示全部楼层
陶远航 发表于 2023-7-28 19:07
不是的。要构成一个三角形,任意两边之和必须大于第三边。如果最小的两条边之和小于或等于第三边,就不能构 ...

请认真看题哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-28 19:09:57 | 显示全部楼层
isdkz 发表于 2023-7-28 19:07
是的,只要三条边的长度满足最小两条边之和大于第三条边的长度,就可以构成一个三角形。这是三角形的一个重 ...

请认真看题哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-28 19:10:55 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-28 19:12:34 | 显示全部楼层
我觉得这个证明成立。

如果两个较小的数和大于最大的数,那么最大的数加其中一个较小的数和也肯定大于另外一个较小的数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-28 19:13:43 | 显示全部楼层
sfqxx 发表于 2023-7-28 19:12
我觉得这个证明成立。

如果两个较小的数和大于最大的数,那么最大的数加其中一个较小的数和也肯定大于另 ...

我也是这样觉得的但是luogu不认为这样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-28 19:14:02 | 显示全部楼层
Ewan-Ahiouy 发表于 2023-7-28 19:13
我也是这样觉得的但是luogu不认为这样

?哪里?神奇
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-28 19:14:55 | 显示全部楼层

https://www.luogu.com.cn/record/117876157

my code
#include <bits/stdc++.h>
using namespace std;

int main() {
    int a[3];
    cin >> a[0] >> a[1] >> a[2];
    sort(a, a + 3);
    bool b = (a[0] + a[1] > a[3]);
    cout << b << endl;

    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-28 19:16:45 | 显示全部楼层    本楼为最佳答案   
Ewan-Ahiouy 发表于 2023-7-28 19:14
https://www.luogu.com.cn/record/117876157

my code

一眼发现问题,第8行最后一个下标错了,应该是2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-28 19:17:28 | 显示全部楼层

a=list(map(int,input().split()))
a.sort()
if min(a)+a[1]>max(a):
    print(1)
else:
    print(0)

对比一下?

楼上确实正解,哪来的3?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-28 19:17:50 | 显示全部楼层
Ewan-Ahiouy 发表于 2023-7-28 19:14
https://www.luogu.com.cn/record/117876157

my code

问题解决请给最佳
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-28 19:18:14 | 显示全部楼层
陈尚涵 发表于 2023-7-28 19:17
问题解决请给最佳

不,我要抢最佳

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-28 19:19:22 | 显示全部楼层
陈尚涵 发表于 2023-7-28 19:16
一眼发现问题,第8行最后一个下标错了,应该是2

靠,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-28 19:20:00 | 显示全部楼层
/*a=list(map(int,input().split()))
a.sort()
if min(a)+a[1]>max(a):
    print(1)
else:
    print(0)
*/

#include <bits/stdc++.h>
using namespace std;

int main() {
    int a[3];
    cin >> a[0] >> a[1] >> a[2];
    sort(a, a + 3);
    bool b = (a[0] + a[1] > a[2]);
    cout << b << endl;

    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-28 19:20:01 | 显示全部楼层
sfqxx 发表于 2023-7-28 19:18
不,我要抢最佳

你那个是代码,我这个是错误,能一样嘛
话说你用python做算法题嘛
https://www.luogu.com.cn/discuss/86673
除 C/C++/Pascal 外的语言,由于常数时间差距,不保证正确算法的执行所用时间和内存能够通过评测而不超出限制。洛谷不为此类语言提供多余的时间和内存限制。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-28 19:20:53 | 显示全部楼层
草!当我啥也没说草!当我啥也没说
草!当我啥也没说草!当我啥也没说草!当我啥也没说草!当我啥也没说草!当我啥也没说
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-28 19:21:28 | 显示全部楼层
陈尚涵 发表于 2023-7-28 19:20
你那个是代码,我这个是错误,能一样嘛
话说你用python做算法题嘛
https://www.luogu.com.cn ...

没有关系
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 04:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表