斜率计算2

斜率计算2

描述

现在给出两个点的坐标,要你求出斜率,这个斜率需要用最简分数表示,同时斜率不存在输出-1

输入

输入4个整数 x1,y1,x2,y2.分别是A,B两点的坐标。

输出

输出两点所确定直线的斜率,不存在则输出-1.

输入样例 1 

2 1 0 0

输出样例 1

1/2

分析:

    由题可知,在斜率存在的前提下,当斜率为整数时,输出整数,当斜率为小数时,输出最简分数。因此,我们先要使斜率存在,很简单,只需要X1!=X2就行了。在此条件下,我们再去判断斜率是整数还是小数。我的想法是,用浮点型变量kf和kd分别存储斜率值,接着判断表达式是

(kf-kd)>0、(kf-kd)<0、(kf-kd)==0。这个表达式,因为kf是浮点型kd是整型,所以计算机在计算的时候会发生自动类型转换,即int->float。如果是(kf-kd)>0,我们不但知道斜率是小数,还可以知道斜率是正数,(kf-kd)<0同理。接着找到分子|Y2-Y1|和分母|X2-X1|的最大公约数num,再用分子和分母分别除以最大公约数,在前面我们又知道斜率是正数还是负数,如果是正数按照题目的格式输出,如果是负数则在格式输出中增添负号,就能输出最简分数了。注意:只有正整数才能求出最大公约数,所以这里要用绝对值求分子和分母。   如果(kf-kd)==0&#

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值