1029 1030,同为三角形问题的同时却在解法上有着鲜明的对比,而且,在这两道题大家会接触到一个新的知识点,与或符。作为一个逻辑判定几乎会用于所有的编程语言,尤为重要,本期就着重根据这两个题目为例子进行解析。
1029:三角形判定
题目描述
给你三个正整数,判断用这三个整数做边长是否能构成一个三角形。输入
输入为三个int范围的正整数,中间有一个空格隔开。输出
如果能构成三角形,输出"Yes",否则输出"No"
#include<stdio.h>
main()
{
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
printf("Yes");
else
printf("No");
}
- 解题思路:
首先需要知道一个简单的数学逻辑,三角形的两边和必定大于第三边,否则不能成为三角形。
所以可以得出以下判断,任意两边和,必须大于第三边,也就是a(b)(c)+任意一条另外的边都要大于第三边。
那么,很明显,这里有三个判断条件,都要成立,才能得到这是一个三角形,所以我们需要在这里用到与或符中的与(&&),把三个等式串联起来完成这个判断。
1030:判断直角三角形
- 题目描述
输入三个正整数,判断用这三个整数做边长是否能构成一个直角三角形。 - 输入
输入三个正整数。 - 输出
能否构成直角三角形。如能输出:yes.若不能,输出:no。
#include<stdio.h>
main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
if(a*a+b*b==c*c||b*b+c*c==a||c*c+a*a==b*b)
printf("yes");
else
printf("no");
}
- 解题思路:
重新回到数学问题上,直角三角形的判断如何判断。我们都知道勾股定理,也就是两条直角边的平方相加等于斜边的平方。
而在这个题目内,由于我们并不清楚它输入的边哪一条是直角边哪一条是斜边。所以我们要把它的每种情况都进行判断,只要有一种符合条件,就完成这次判断。所以,我们在这里使用了与或符里面的或符(||),只要三条等式里的任意一条符合要求就可以知道这是一个直角三角形。
PS:看完点个赞谢谢~