平行四边形
题目描述
已知平行四边形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);
}
}
}
}