nchu-software-oop-2022-1
体重是反映和衡量一个人健康状况的重要标志之一,过胖和过瘦都不利于健康,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”。
输入样例0:
在这里给出一组输入。例如:
-2 8
输出样例0:
在这里给出相应的输出。例如:
input out of range
输入样例1:
在这里给出一组输入。例如:
70 1.75
输出样例1:
在这里给出相应的输出。例如:
fit
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
float a,b,c;
a=input.nextFloat();
b=input.nextFloat();
c=input.nextFloat();
if(a<1||a>200||b<1||b>200||c<1||c>200){
System.out.print("Wrong Format\n");
return;
}
if((a+b)<=c||(a+c)<=b||(c+b)<=a){
System.out.print("Not a triangle\n");
return;
}
// 一般 General triangle
// 等边 Equilateral triangle
if(a==b&&b==c){
System.out.print("Equilateral triangle\n");
return;
}else if(a==b||a==c||b==c){
if(a==b){
// 等腰直角 Isosceles right-angled triangle
if(a*a+b*b-c*c<0.000001){
System.out.print("Isosceles right-angled triangle\n");
return;
}
// 等腰 Isosceles triangle
else{
System.out.print("Isosceles triangle\n");
return;
}
}
if(a==c){
if(a*a+c*c-b*b<0.000001){
System.out.print("Isosceles right-angled triangle\n");
return;
}
else{
System.out.print("Isosceles triangle\n");
return;
}
}
if(c==b){
if(b*b+c*c-a*a<0.000001){
System.out.print("Isosceles right-angled triangle\n");
return;
}
else{
System.out.print("Isosceles triangle\n");
return;
}
}
}else if(a*a+b*b-c*c<0.000001||a*a+c*c-b*b<0.0000001||c*c+b*b-a*a<0.0000001){
// 直角 Right-angled triangle
System.out.print("Right-angled triangle\n");
return;
}
else{
System.out.print("General triangle\n");
}
}
}
长度、质量的计量有多重不同的计算体系,有标准的国际单位制:千克与米,也有各个国家自己的计量方法如:磅、英寸;1磅等于0.45359237千克,1英寸等于0.0254米,请编写程序实现国际单位制与英制之间的换算。
输入格式:
两个浮点数,以空格分隔,第一个是质量(以千克为单位)、第二个是长度(以米为单位)。例如:0.45359237 0.0254。
输出格式:
两个浮点数,以空格分隔,第一个是质量(以磅为单位)、第二个是长度(以英寸为单位)。例如:1.0 1.0。
输入样例:
在这里给出一组输入。例如:
0.45359237 0.0254
输出样例:
在这里给出相应的输出。例如:
1.0 1.0
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
double w,h,b;
w = input.nextDouble();//体重
h = input.nextDouble();//升高
b=w/h/h;//计算得bmi值
//关于有效值和bmi值的比较
if(w<=0||h<=0||w>727||h>2.72) {
System.out.print("input out of range");
}
else
if(b<18.5){
System.out.print("thin");
}
else
if(b<24&&b>=18.5){
System.out.print("fit");
}
else
if(b>=24&&b<28){
System.out.print("overweight");
}
else
if(b>=28){
System.out.print("fat");
}
}
}
计算一个数列中所有奇数的和。
输入格式:
十个整数,以空格分隔。例如:1 2 3 4 5 6 7 8 9 0。
输出格式:
输入数列中所有奇数之和。例如:25。
输入样例:
在这里给出一组输入。例如:
1 2 3 4 5 6 7 8 9 0
输出样例:
在这里给出相应的输出。例如:
25
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int i=0;
int n,sum=0;
//十个整数输入一个,判断一个是否为奇数
for(i=0;i<10;i++){
n=input.nextInt();
// 判断奇数并 求和
if(n%2!=0)
sum=sum+n;
}
System.out.print(sum);
}
}
房屋交易在日常生活中非常常见的事情,房屋交易时要额外支付各种税费,按2022年房产交易新政策的规定买房人应缴纳税费包括:
1、契税:首次购房评估额90平(含)内1%、90平-144平(含)内1.5%,超过144平或非首 次3%,买方缴纳。
2、印花税:房款的0.05%。
3、交易费:3元/平方米。
4、测绘费:1.36元/平方米。
5、权属登记费及取证费:一般情况是在200元内。
输入格式:
四个数据,以空格分隔:
1、第几次购房(整数)
2、房款(整数/单位万元)
3、评估价(整数/单位万元)
4、房屋面积(浮点数/单位平方米)。
例如:1 100 100 90。
输出格式:
契税、印花税、交易费、测绘费(以元为单位),以空格分隔。例如:10000.0 500.0 270.0 122.4
输入样例:
在这里给出一组输入。例如:
1 100 100 90
输出样例:
在这里给出相应的输出。例如:
10000.0 500.0 270.0 122.4
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
// 次数,费用,评估价,面积
int count,expens,evelu;
double S;
count = input.nextInt();
expens = input.nextInt();
evelu = input.nextInt();
S = input.nextDouble();
// 契税,印花税,交易费,测绘费
double tax1,tax2,tax3,tax4;
if(count==1){
if(S<=90){
tax1 = expens*0.01*10000;
}else if(S>90&&S<=144){
tax1 = expens*0.015*10000;
}else
tax1 = expens*10000*0.03;
}else
tax1 = expens*10000*0.03;
tax2 = expens*0.0005*10000;
tax3 = 3*S;
tax4 = 1.36*S;
System.out.print((float)tax1+" "+(float)tax2+" "+(float)tax3+" "+(float)tax4);
}
}
一款网游中包括4个种族:人类、精灵、兽人、暗精灵,每个种族包含三种角色:战士、法师、射手。玩家新建人物时需要选择种族和角色。请编写角色选择程序。
输入格式:
两个整数:游戏种族、角色的选项,以空格分隔。例如:1 2。
种族选项设定为:1、人类 2、精灵 3、兽人 4、暗精灵
角色选项设定为:1、战士 2、法师 3、射手
输出格式:
所选择的种族、角色的名称,以空格分隔。例如:人类 法师
若输入数值超出选项范围,输出“Wrong Format”
输入样例1:
在这里给出一组输入。例如:
1 2
输出样例1:
在这里给出相应的输出。例如:
人类 法师
输入样例2:
在这里给出一组输入。例如:
1 6
输出样例2:
在这里给出相应的输出。例如:
Wrong Format
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
// 种族,角色
int race,role;
race = input.nextInt();
role = input.nextInt();
if(race<1||race>4||role<1||role>3){
System.out.print("Wrong Format");
}
if(race==1){
if(role==1){
System.out.print("人类 战士");
}else if(role==2){
System.out.print("人类 法师");
}else if(role==3){
System.out.print("人类 射手");
}
}else if(race==2){
if(role==1){
System.out.print("精灵 战士");
}else if(role==2){
System.out.print("精灵 法师");
}else if(role==3){
System.out.print("精灵 射手");
}
}else if(race==3){
if(role==1){
System.out.print("兽人 战士");
}else if(role==2){
System.out.print("兽人 法师");
}else if(role==3){
System.out.print("兽人 射手");
}
}else if(race==4){
if(role==1){
System.out.print("暗精灵 战士");
}else if(role==2){
System.out.print("暗精灵 法师");
}else if(role==3){
System.out.print("暗精灵 射手");
}
}
}
}
学校的学号由8位数字组成,前两位是入学年份(省略了20);第3、4位是学院编号,01代表材料学院,02代表机械学院,03代表外语学院,20代表软件学院;第5、6位是学院内部班级编号,最后两位是班级内部学号。如:18011103,入学年份是2018年,材料学院,11班,03号
输入格式:
8位数字组成的学号。例如:18011103
注意:输入学号不是8位或者学院编号不是01、02、03、20其中之一,属于非法输入
输出格式:
学号每一项的完整说明。例如:
入学年份:2018年
学院:材料学院
班级:11
学号:03
注意:如非法输入,输出“Wrong Format"
输入样例:
在这里给出一组输入。例如:
18011103
输出样例:
在这里给出相应的输出。例如:
入学年份:2018年
学院:材料学院
班级:11
学号:03
输入样例1:
在这里给出一组输入。例如:
18013
输出样例1:
在这里给出相应的输出。例如:
Wrong Format
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// 学号
String number;
number = input.nextLine();
// 8位判断
if(number.length()!=8){
System.out.print("Wrong Format");
return;
}
// 年份,学院,班级,学号
String year,colle,clas,num;
// 识别
year=number.substring(0,2);
colle=number.substring(2,4);
clas=number.substring(4,6);
num=number.substring(6,8);
// 学院识别
if(colle.equals("01")){
colle = "材料学院";
}else if(colle.equals("02")){
colle = "机械学院";
}else if(colle.equals("03")){
colle = "外语学院";
}else if(colle.equals("20")){
colle = "软件学院";
}else{
System.out.print("Wrong Format");
return;
}
// 学号符合输出
System.out.print("入学年份:20"+year+"年\n");
System.out.print("学院:"+colle+"\n");
System.out.print("班级:"+clas+"\n");
System.out.print("学号:"+num);
}
}
巴比伦法求n的近似值可以用以下公式:
nextGuess = (lastGuess+n/lastGuess)/2
程序初始运行时lastGuess可赋予一个最初的猜测值。当由公式求得的nextGuess和lastGuess相差较大时,把nextGuess的值赋给lastGuess,继续以上过程,直至nextGuess和lastGuess几乎相同,此时lastGuess或者nextGuess就是平方根的近似值。
本题要求:nextGuess和lastGuess的差值小于0.00001时认为两者几乎相同
输入格式:
1、两个浮点数,以空格分隔,第一个是n,第二个是lastGuess最初的猜测值。例如:2 1。
2、若输入的两个数中包含负数或者lastGuess初始输入为0,认定为非法输入
输出格式:
1、输出n的平方根近似值:lastGuess。例如:1.4142157
2、非法输入时输出:"Wrong Format"
输入样例:
在这里给出一组输入。例如:
2 1
输出样例:
在这里给出相应的输出。例如:
1.4142157
输入样例1:
在这里给出一组输入1。例如:
2 -1
输出样例:
在这里给出相应的输出。例如:
Wrong Format
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// 第一个是n,第二个是lastGuess最初的猜测值。
float n,lastGuess,nextGuess;
n = input.nextFloat();
lastGuess = input.nextFloat();
// 若输入的两个数中包含负数或者lastGuess初始输入为0,认定为非法输入
if(n<=0||lastGuess<=0){
System.out.print("Wrong Format");
return;
}
// nextGuess和lastGuess的差值小于0.00001时认为两者几乎相同
nextGuess = (lastGuess+n/lastGuess)/2;
while(Math.abs(nextGuess-lastGuess)>=0.00001){
lastGuess = nextGuess;
nextGuess = (lastGuess+n/lastGuess)/2;
}
System.out.print(lastGuess);
}
}
在一个字符串中提取出其中的二进制数值序列,。
输入格式:
一个由0、1构成的序列,以-1为结束符,非0、1字符视为正常输入,但忽略不计,未包含结束符的序列视为非法输入。例如:abc00aj014421-1
输出格式:
将输入的序列去掉非0、1字符以及结尾符的数据内容,
注:结束符-1之后的0\1字符忽略不计。
例如:00011。
输入样例:
在这里给出一组输入。例如:
abc00aj014421-1
输出样例:
在这里给出相应的输出。例如:
00011
输入样例1:
在这里给出一组输入。例如:
a0571-1k001y
输出样例1:
在这里给出相应的输出。例如:
01
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String str = input.nextLine();
String a = "";
for(int i=0;i<str.length();i++){
// 结束字符-1判断
if(str.charAt(i)=='-'){
if(str.charAt(i+1)=='1'){
System.out.print(a);
return;
}
}else if(str.charAt(i)=='0'||str.charAt(i)=='1'){
a=a+str.charAt(i);
}
}
System.out.print("Wrong Format");
}
}
输入三角形三条边,判断该三角形为什么类型的三角形。
输入格式:
在一行中输入三角形的三条边的值(实型数),可以用一个或多个空格或回车分隔,其中三条边的取值范围均为[1,200]。
输出格式:
(1)如果输入数据非法,则输出“Wrong Format”;
(2)如果输入数据合法,但三条边不能构成三角形,则输出“Not a triangle”;
(3)如果输入数据合法且能够成等边三角形,则输出“Equilateral triangle”;
(3)如果输入数据合法且能够成等腰直角三角形,则输出“Isosceles right-angled triangle”;
(5)如果输入数据合法且能够成等腰三角形,则输出“Isosceles triangle”;
(6)如果输入数据合法且能够成直角三角形,则输出“Right-angled triangle”;
(7)如果输入数据合法且能够成一般三角形,则输出“General triangle”。
输入样例1:
在这里给出一组输入。例如:
50 50 50.0
输出样例1:
在这里给出相应的输出。例如:
Equilateral triangle
输入样例2:
在这里给出一组输入。例如:
60.2 60.2 80.56
输出样例2:
在这里给出相应的输出。例如:
Isosceles triangle
输入样例3:
在这里给出一组输入。例如:
0.5 20.5 80
输出样例3:
在这里给出相应的输出。例如:
Wrong Format
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
float a,b,c;
a=input.nextFloat();
b=input.nextFloat();
c=input.nextFloat();
if(a<1||a>200||b<1||b>200||c<1||c>200){
System.out.print("Wrong Format\n");
return;
}
if((a+b)<=c||(a+c)<=b||(c+b)<=a){
System.out.print("Not a triangle\n");
return;
}
// 一般 General triangle
// 等边 Equilateral triangle
if(a==b&&b==c){
System.out.print("Equilateral triangle\n");
return;
}else if(a==b||a==c||b==c){
if(a==b){
// 等腰直角 Isosceles right-angled triangle
if(a*a+b*b-c*c<0.000001){
System.out.print("Isosceles right-angled triangle\n");
return;
}
// 等腰 Isosceles triangle
else{
System.out.print("Isosceles triangle\n");
return;
}
}
if(a==c){
if(a*a+c*c-b*b<0.000001){
System.out.print("Isosceles right-angled triangle\n");
return;
}
else{
System.out.print("Isosceles triangle\n");
return;
}
}
if(c==b){
if(b*b+c*c-a*a<0.000001){
System.out.print("Isosceles right-angled triangle\n");
return;
}
else{
System.out.print("Isosceles triangle\n");
return;
}
}
}else if(a*a+b*b-c*c<0.000001||a*a+c*c-b*b<0.0000001||c*c+b*b-a*a<0.0000001){
// 直角 Right-angled triangle
System.out.print("Right-angled triangle\n");
return;
}
else{
System.out.print("General triangle\n");
}
}
}


浙公网安备 33010602011771号