【java_蓝桥杯算法训练】算法训练 斜率计算
【摘要】 算法训练 斜率计算资源限制时间限制:1.0s 内存限制:512.0MB 输入两个点的坐标,即p1 = (x1, y1)和p2=(x2, y2),求过这两个点的直线的斜率。如果斜率为无穷大输出“INF”。样例输入1 22 4样例输出2样例输入1 21 4样例输出INF样例输入1 23 2样例输出0分析:本题是求斜率的是一个数学问题,斜率是什么?斜率亦称“角系数”,表示在平面直角坐标系中一...
算法训练 斜率计算
资源限制
时间限制:1.0s 内存限制:512.0MB
输入两个点的坐标,即p1 = (x1, y1)和p2=(x2, y2),求过这两个点的直线的斜率。如果斜率为无穷大输出“INF”。
样例输入
1 2
2 4
2 4
样例输出
2
样例输入
1 2
1 4
1 4
样例输出
INF
样例输入
1 2
3 2
3 2
样例输出
0
分析:
本题是求斜率的是一个数学问题,斜率是什么?
斜率亦称“角系数”,表示在平面直角坐标系中一条直线对横坐标轴的倾斜程度的量。
斜率就是我们所说的坡度,是高度的平均变化率,用坡度来刻划道路的倾斜程度,也就是用坡面的切直高度和水平长度的比,相当于在水平方向移动一千米,在切直方向上升或下降的数值,这个比值实际上就表示了坡度的大小。
其次,从倾斜角的正切值来看;还有就是从向量看,是直线向上方向的向量与x轴方向上的单位向量的夹角;最后是从导数这个视角来再次认识斜率的概念,这里实际上就是直线纵坐标随横坐标的瞬时变化率。认识斜率概念不仅仅是对今后的学习起着很重要的作用,而且对今后学习的一些数学的重要的解题的方法,也是非常有帮助的。
直线对x轴的倾斜角α的正切值tanα称为该直线的“斜率”,并记作k,公式为k=tanα。规定平行于x轴的直线的斜率为零,平行于y轴的直线的斜率不存在。对于过两个已知点 (x1, y1) 和 (x2, y2) 的直线,若x1≠x2,则该直线的斜率为 k=(y1-y2)/(x1-x2)。
即k=tanα=
=
或
我们可以使用这个公式进行计算,定义double类型x1、x2、y1、y2,题目要求斜率为无穷大输出“INF”,但是如果为无穷大时double会输出Infinity,我们定义一个字符串用来存放c的值判断是否为Infinity则输出INF,否则直接输出计算后的值没有小数点。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
//定义x1,x2,y1,y2
int x1=sc.nextInt();
int y1=sc.nextInt();
int x2=sc.nextInt();
int y2=sc.nextInt();
//按照公式进行计算存入c中
double c=(1.0*y2-y1)/(x2-x1);
// 用来存放字符,判断是否是Infinity
String s=c+"";
if(s.equals("Infinity")) {
System.out.println("INF");
}else {
System.out.println((int)c);
}
}
}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)