【java_蓝桥杯算法训练】算法训练 斜率计算

举报
昵称: 发表于 2022/02/23 09:49:31 2022/02/23
【摘要】 算法训练 斜率计算资源限制时间限制: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

样例输入

1 2
1 4

样例输出

INF

样例输入

1 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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。