列表

详情


NC248434. 悸动的距离

描述

《悸动的距离》

也许 仅仅毫厘之间
便是冰与火的交替
我冷颤在寒冰之中
却不知炎热离我亦如此之近

欢笑中隐藏的泪水
折射出了无法忘却的娇颜
命中本该有交集
却在阴差阳错间平行远去
当心灵来到了悸动的距离
瞳孔之间 也许倒映着另一个你

平面直角坐标系中,小红站在A点,坐标是(x_A,y_A);小紫站在B点,坐标是(x_B,y_B)。小红想知道,若她和小紫之间连一条线段,线段和坐标轴共有多少个交点?

输入描述

四个整数x_A,y_A,x_B,y_B,用空格隔开。
保证线段AB不在坐标轴上。保证A点和B点不重合。

输出描述

线段AB和坐标轴的交点数量

示例1

输入:

1 1 -1 -1

输出:

1

说明:

线段AB和两个坐标轴的交点重合了,因此只有一个交点。

示例2

输入:

3 0 0 3

输出:

2

说明:

端点在坐标轴上也视为有交点

示例3

输入:

2 -1 2 3

输出:

1

示例4

输入:

-9 2 -2 9

输出:

0

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C 解法, 执行用时: 2ms, 内存消耗: 356K, 提交时间: 2023-02-19 20:28:02

#include<stdio.h>
int main()
{
   int a,b,c,d,x=0;
   scanf("%d%d%d%d",&a,&b,&c,&d);
   if(a*c<=0)
   x++;
   if(b*d<=0)
   x++;
   if(x==2&&a*d==b*c)
   x--;
   printf("%d",x);
   return 0;
}

C++(clang++ 11.0.1) 解法, 执行用时: 3ms, 内存消耗: 428K, 提交时间: 2023-02-20 21:31:36

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int a,b,c,d;
    cin>>a>>b>>c>>d;
    cout<<max(0,(a*c<=0)+(b*d<=0)-(a*d==b*c));
    return 0;
}

Python3 解法, 执行用时: 42ms, 内存消耗: 4560K, 提交时间: 2023-03-17 15:52:51

x1,y1,x2,y2=map(int,input().split(" "))
if(x1*x2>0 and y1*y2>0):
    print("0")
elif(x1*x2>0 or y1*y2>0 or (y1*x2==y2*x1)):
    print("1")
else:
    print("2")

pypy3 解法, 执行用时: 71ms, 内存消耗: 21220K, 提交时间: 2023-02-14 20:14:13

xa, ya, xb, yb = map(int, input().split())
res = (xa*xb <= 0) + (ya*yb <= 0)
if res == 2 and ya*xb == yb*xa: res = 1
print(res)

上一题