1.利用海伦公式求三角形面积
海伦公式的表示:
假设在平面内,有一个三角形,边长分别为a、b、c,三角形的面积S可由以下公式求得:
其中,p为半周长(即:周长的一半):
import java.util.Scanner;
/*
time: 2024/12/8 14:07
*/
public class Main {
// 求三角形面积
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
double a = sc.nextDouble();
double b = sc.nextDouble();
double c = sc.nextDouble();
// 三角形--条件
if (a + b > c && a + c > b && b + c > a) {
double p = (a + b + c) / 2;
double s = Math.sqrt(p * (p - a) * (p - b) * (p - c));
System.out.printf("%.2f\n", s);
} else {
System.out.println("Input Error!");
}
}
}
}
2. 身体质量指数(BMI)测算
体重是反映和衡量一个人健康状况的重要标志之一,过胖和过瘦都不利于健康,BMI(身体质量指数)计算方法:体重(以千克为单位)除以身高(以米为单位)的平方。中国成人正常的BMI应在18.5-24之间,如果小于18.5为体重不足,如果大于等于24为超重,大于等于28为肥胖。请编写程序,测算身体状态。
输入格式:
两个数值:体重(以千克为单位),身高(以米为单位),数值间以空格分隔。例如:65.5 1.75。
注意:体重的世界纪录是727公斤,身高的世界纪录是2.72米。输入数据上限不得超过纪录,下限不得小于等于0;
输出格式:
输入数值超出范围 :输出“input out of range”。例如:-2 3或者125 5。
BMI小于18.5 :输出“thin”。
BMI大于等于18.5小于24 :输出“fit”。
BMI大于等于24小于28 :输出“overweight”。
BMII大于等于28 :输出“fat”。
import java.util.Scanner;
/*
time: 2024/12/8 14:18
*/
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
while(sc.hasNext()) {
double weight = sc.nextDouble();
double height = sc.nextDouble();
if (weight <= 0 || height <= 0 || weight > 727 || height > 2.72) {
System.out.println("input out of range");
}
else {
double BMI = weight /( height*height);
if (BMI < 18.5) {
System.out.println("thin");
}
else if (BMI < 24 && BMI >= 18.5) {
System.out.println("fit");
}
else if (BMI >= 24 && BMI < 28) {
System.out.println("overweight");
}else {
System.out.println("fat");
}
}
}
}
}
3. 回文
输入一个以回车符为结束标志的字符串(少于80个字符),判断该字符串是否为回文。
回文就是字符串中心对称,如“abcba”、“abccba”是回文,“abcdba”不是回文。
import java.util.Scanner;
/*
time: 2024/12/8 14:35
*/
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
StringBuilder sb = new StringBuilder(str);
String rev = sb.reverse().toString();
if (str.equals(rev)) {
System.out.println("yes");
}else {
System.out.println("no");
}
}
}
4. 我是升旗手
一年一度的升旗手选拔又要到了,学校要求每个班级选出一位同学做升旗手的候选人。因
为升旗手对身高有严格的要求,所以班主任决定选班级里个子最高的同学(如果两位同学
一样高,则选任意一位)。你能很快地给老师答案么?
输入格式:
输入包括两行。 第一行:包括一个整数n,表示班级里共有n位同学。 第二行:包含n个三位数,表示每一位同学的身高。
输出格式:
输出身高最高的同学的身高。
import java.util.Scanner;
/*
time: 2024/12/8 14:44
*/
// 升旗手
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
// 输入的是人数
int n = sc.nextInt();
int maxHeight = 100;
for (int i = 0; i < n; i++) {
int height = sc.nextInt();
if (height > maxHeight) {
maxHeight = height;
}
}
System.out.println(maxHeight);
}
5.兔子繁殖问题
已知有一对兔子,每个月可以生一对兔子,而小兔子一个月后又可以生一对小兔子(比如:2月份出生的小兔子4月份可以生育)。也就是说,兔子的对数为:第一个月1对,第二个月2对,第三个月3对,第四个月5对.....假设兔子的生育期为两年,且不死。那么问题来了,你能说出每个月的兔子数么?
输入格式:
输入一个数n,表示第n个月,1<=n<=24。
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int a,b,c;
a = 1;
b = 1;
c = 0;
for(int i = 2;i<=n;i++){
c = a + b;
a = b;
b = c;
}
System.out.println(c);
}
}
5. 西安距离
小明来到了古都西安,想去参观大唐西市!
西安的道路可以看做是与x轴或y轴垂直的直线,小明位于(a,b),而目的地位于(c,d),问最少几步可以到达。
输入格式:
一行中四个整数,a,b,c,d,表示坐标为(a,b)与(c,d),这里0<=a,b,c,d<=1000
输出格式:
输出这两个点的西安距离。
import java.util.Scanner;
// 西安距离计算
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
int d = sc.nextInt();
int x = Math.abs(a-c);
int y = Math.abs(b-d);
System.out.println(x+y);
}
}