斜率计算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&#