【Java】2023.3.28蓝桥杯打卡

  1. 平行四边形
  2. 两点距离
  3. 求角的度数
  4. 三角函数
  5. 指数计算

平行四边形

题目描述
已知平行四边形ABCD中的三个点ABC,请编程求出第四个点D。
输入格式
输入有若干行,每行有6个整数,a1,a2,b1,b2,c1,c2。
表示A(a1,a2),B(b1,b2),C(c1,c2)。
输出格式
输出D的坐标,格式见样例。

输入样例
5 0 0 0 1 1
3 2 5 4 4 5
输出样例
D(6,1)
D(2,3)

import java.util.Scanner;

public class p10 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextInt()){
            int a1 = sc.nextInt();
            int a2 = sc.nextInt();
            int b1 = sc.nextInt();
            int b2 = sc.nextInt();
            int c1 = sc.nextInt();
            int c2 = sc.nextInt();
            int d1 = a1-b1+c1;
            int d2 = a2-b2+c2;
            System.out.println("D("+d1+","+d2+")");
        }
    }
}

两点距离

题目描述
在平面直角坐标系中求两点的距离。
输入格式
输入有若干行,每行四个浮点数,分别代别两个坐标点(a,b)和(c,d)。
输出格式
对于每组数据,对应输出这两点之间的距离。结果保留两位小数。

输入样例
0 0 4 3
1.1 -2.3 0 1
输出样例
5.00
3.48

import java.util.Scanner;

public class p11 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextDouble()){
            double a = sc.nextDouble();
            double b = sc.nextDouble();
            double c = sc.nextDouble();
            double d = sc.nextDouble();
            double length = Math.sqrt(Math.pow(c-a,2)+Math.pow(d-b,2));
            System.out.printf("%.2f%n",length);
        }
    }
}

求角的度数

题目描述
平面上有三个点A、B、C,求∠ABC的大小
输入格式
输入有若干行,每行有6个实数x1,y1,x2,y2,x3,y3。
表示平面上的三个点A(x1,y1),B(x2,y2),C(x3,y3)。
输出格式
输出∠ABC的大小,单位为度(0~180),结果保留两位小数。
输入样例
3 0 0 0 0 1
-5 0 0 0 1 1
输出样例
90.00
135.00

import java.util.Scanner;

public class p12 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextDouble()){
            double x1 = sc.nextDouble();
            double y1 = sc.nextDouble();
            double x2 = sc.nextDouble();
            double y2 = sc.nextDouble();
            double x3 = sc.nextDouble();
            double y3 = sc.nextDouble();
            double vector1x = x1-x2;
            double vector1y = y1-y2;
            double vector2x = x3-x2;
            double vector2y = y3-y2;
            //使用向量点积公式a·b = |a||b|cosθ
            double t = (vector1x * vector2x + vector1y * vector2y)/
                    (Math.sqrt(Math.pow(vector1x,2) + Math.pow(vector1y,2))
                    * Math.sqrt(Math.pow(vector2x,2) + Math.pow(vector2y,2)));
            //方法一:
            //toDegrees该方法用于将弧度转换为度数,acos其作用是返回给定参数的反余弦值
            System.out.printf("%.2f%n",Math.toDegrees(Math.acos(t)));
            //方法二:
//            System.out.printf("%.2f%n",Math.acos(t) * (180 / Math.PI));
        }
    }
}

三角函数

题目描述
三角函数有六个:sin(x)、cos(x)、tan(x)、cot(x)=1/tan(x)、csc(x)=1/sin(x)、sec(x)=1/cos(x)。
同一个角的六个三角函数相加会得到什么呢?请编程计算。
输入格式
输入有若干行,每行一个整数x,表示第一象限的角的度数
输出格式
对应输出六个三角函数的和。格式是先输出“Sum=”,再输出角的度数。结果保留2位小数。

输入样例
45
30
输出样例
Sum=6.24
Sum=6.83

import java.util.Scanner;

public class p13 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextDouble()){
            int x = sc.nextInt();
            //角度转弧度:弧度 = 角度 × π / 180
            double i = x * Math.PI / 180;
            double sin = Math.sin(i);
            double cos = Math.cos(i);
            double tan = Math.tan(i);
            double cot =1 / Math.tan(i);
            double csc =1 / Math.sin(i);
            double sec =1 / Math.cos(i);

            double sum=sin+cos+tan+cot+csc+sec;
            System.out.printf("Sum=%.2f%n",sum);
        }
    }
}

指数计算

题目描述
计算表达式x^y的值,分别输出它们的整数部分和小数部分。
输入格式
输入有若干行,每行两个浮点数x、y。
输出格式
当x<0时,输出"NO",否则就输出x^y的整整部分和小数部分。小数部分按%lf格式输出。
如12.345的输出为"12 0.345000".

输入样例
1.1 2
3.6 7.8
-3 0.5
输出样例
1 0.210000
21835 0.317236
NO

import java.util.Scanner;

public class p14 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextDouble()){
            double x = sc.nextDouble();
            double y = sc.nextDouble();
            double power = Math.pow(x,y);
            if (x < 0){
                System.out.println("NO");
            }else {
                int integerPart = (int)power;
                double decimalPart = power - integerPart;
                System.out.printf(integerPart+" "+"%.6f%n",decimalPart);
            }
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值