ZZULIOJ 2620: 小H的光剑VS光剑

题目描述

        小H是《星球大战》的铁杆粉丝,对电影里的光剑更是无比喜爱。在梦中,小H穿越到了星战世界,他发现脚下有一个坐标系,身旁有两把光剑,但是他怎么都无法拿起这两把光剑。此时,小H脑海中浮现了两个公式,机智的他意识到了这两个公式是拿起光剑的诀窍:这两个公式是二元一次方程,形如y=kx+b,k和b为不同的常数。显然,它们就是描述两把光剑各自所在直线的方程。问题来了,这两条直线会不会相交呢?如果相交,请输出YES,并输出交点,否则输出NO。小H已经搞定,开始挥舞光剑了,你呢?

输入

多样例,每组样例包含两行:
第一行输入两个整数,分别代表第一把光剑对应的k值和b值,
第二行输入两个整数,分别代表第二把光剑对应的k值和b值。
上述4个值均为整数,且绝对值小于100。

输出

如果两直线相交,第一行输出“YES”(不含引号),并在第二行输出交点坐标(小数点后保留两位小数,具体格式参考下方样例),否则输出“NO”(不含引号)

样例输入 Copy

1 23
2 16
9 0
8 0

样例输出 Copy

YES
7.00 30.00
YES
0.00 0.00

提示

保证两条直线不重合。
尽量不要对浮点数进行比较,会出现误差。

来源/分类

 郑州轻工业大学2019级新生赛 

#include<stdio.h>

void main()
{
   int k,b,k0,b0;
   double x,y;
   
   while(scanf("%d",&k)!=EOF)
   {
   		scanf("%d",&b);
   		scanf("%d%d",&k0,&b0);
   		
   		if((k==k0)||((1.0*b/k==1.0*b0/k0)&&(b!=0&&b0!=0))) 
   			printf("NO\n");
   		else
   		{
   			printf("YES\n");
   			x=1.0*(b0-b)/(k-k0);
   			y=k*x+b;
   			printf("%.2f %.2f\n",x,y);
   		}
   }
	  
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值