目录标题
JAVA1 类型转换
描述
设计一个方法,将一个小于2147483647的double类型变量以截断取整方式转化为int类型
输入描述:
随机double类型变量
输出描述:
转化后的int类型变量
示例1
输入:
12.34
输出:
12
示例2
输入:
1.88
输出:
1
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double d = scanner.nextDouble();
System.out.println(TC.typeConversion(d));
}
public static int typeConversion(double d) {
return (int)d;
}
}
JAVA2 简单运算
描述
输入两个正整数a和b,输出这两个正整数的和,差,积,商,模(若a>b则输出a-b,a/b,a%b的值反之输出b-a,b/a,b%a的值,不考虑小数,请使用int类型)
输入描述:
两个正整数
输出描述:
它们的和,差,积,商,模。每个值之间用空格隔开
示例1
输入:
10 5
输出:
15 5 50 2 0
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
int b = scanner.nextInt();
scanner.close();
if(a<b){
int temp=a;
a=b;
b=temp;
}
System.out.printf("%d %d %d %d %d",a+b,a-b,a*b,a/b,a%b);
}
}
JAVA3 四舍五入
描述
定义一个int类型变量i,i为由浮点数变量d四舍五入后的整数类型,请将转换后的i进行输出
输入描述:
用户随机输入的浮点数
输出描述:
四舍五入之后的整数(小数点后一位>=5则进一,否则舍去)
示例1
输入:
14.99
输出:
15
一种解法
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double d= scanner.nextDouble();
int i=(int)d;
if((d-i)>0.5){
i++;
}
System.out.println(i);
}
}
二种解法
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double d= scanner.nextDouble();
int i=(int)(d+0.5);
System.out.println(i);
}
}
JAVA4 交换变量值
描述
在不使用第三个变量的情况下交换两个int类型变量的值
输入描述:
a变量和b变量的值
输出描述:
交换后a变量和b变量的值,中间用空格隔开
示例1
输入:
1 2
输出:
2 1
一种解法
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
int b = scanner.nextInt();
int temp=a;
a=b;
b=temp;
System.out.println(a+" "+b);
}
}
二种解法
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
int b = scanner.nextInt();
a = a+b;
b = a-b;
a = a-b;
System.out.println(a+" "+b);
}
}
三种解法
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
int b = scanner.nextInt();
a=a+b-(b=a);
System.out.println(a+" "+b);
}
}
JAVA5 计算商场折扣
描述
牛牛商场促销活动:
满100全额打9折;
满500全额打8折;
满2000全额打7折;
满5000全额打6折;
且商场有抹零活动,不足一元的部分不需要付款(类型强制转换)
牛大姨算不清楚自己应该付多少钱,请你帮忙算一下
输入描述:
牛大姨账单钱数(int类型)
输出描述:
参加活动后,牛大姨应付钱数(int类型)
示例1
输入:
654
输出:
523
一种解法
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
int price = console.nextInt();
int cost = 0;
if(price>=5000){
cost=(int)(price*0.6);
}else if(price>=2000){
cost = (int) (price * 0.7);
}else if(price>=500){
cost = (int) (price * 0.8);
}else if(price>=100){
cost=(int)(price*0.9);
}else{
cost=(int)(price);
}
System.out.println(cost);
}
}
二种解法
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
int price = console.nextInt();
int cost = 0;
//write your code here......
//考虑到购买5000元东西的人很少,应从小到大判断,以减少判断次数
cost=(int)(price<100 ? price : price<500
? price*0.9 : price<2000
? price*0.8 : price<5000
? price*0.7 : price*0.6);
System.out.println(cost);
}
}
JAVA6 判断体重指数
描述
体重指数 = 体重 (kg) / ( 身高 (m) × 身高 (m) ),小于18.5属于偏瘦,介于18.5和20.9之间(左闭右开)属于苗条,介于20.9和24.9之间(左闭右闭)属于适中,超过24.9属于偏胖。下面由你来编写一段逻辑,算出输入了身高和体重的用户的体重指数,并返回他们的身材状态。(体重指数请使用double类型)
输入描述:
用户的身高(m)和用户的体重(kg)
输出描述:
体重指数代表的用户身材状态
示例1
输入:
1.75 62.5
输出:
苗条
示例2
输入:
1.5 40
输出:
偏瘦
示例3
输入:
1.85 80
输出:
适中
示例4
输入:
2 100
输出:
偏胖
一种解法
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double height = scanner.nextDouble();
double weight = scanner.nextDouble();
double whh=weight/(height*height);
if(whh>24.9){
System.out.println("偏胖");
}else if(whh>=20.9&&whh<=24.9){
System.out.println("适中");
}else if(whh>=18.5&&whh<20.9){
System.out.println("苗条");
}else{
System.out.println("偏瘦");
}
}
}
二种解法
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double height = scanner.nextDouble();
double weight = scanner.nextDouble();
//write your code here......
scanner.close();
//我想着少定义一个bmi变量
System.out.print(weight/(height*height)<18.5 ? "偏瘦" : weight/(height*height)<20.9
? "苗条" : weight/(height*height)<24.9
? "适中" : "偏胖");
}
}
JAVA7 判断学生成绩等级
描述
现有如下成绩等级A,B,C,D。其中A代表优秀,B代表良好,C代表及格,D代表不及格。现在请你来为学生的成绩进行分级,如果用户输入错误则输出未知等级。
输入描述:
成绩等级对应的中文表述
输出描述:
优秀,良好,及格,不及格,未知等级
示例1
输入:
A
输出:
优秀
示例2
输入:
B
输出:
良好
示例3
输入:
C
输出:
及格
示例4
输入:
D
输出:
不及格
示例5
输入:
E
输出:
未知等级
一种解法
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String grade = scanner.next();
switch (grade){
case "A":
System.out.println("优秀");
break;
case "B":
System.out.println("良好");
break;
case "C":
System.out.println("及格");
break;
case "D":
System.out.println("不及格");
break;
default:
System.out.println("未知等级");
}
}
}
二种解法
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String grade =scanner.next();
if(grade.equals("A")){
System.out.println("优秀");
}
else if(grade.equals("B")){
System.out.println("良好");
}
else if(grade.equals("C")){
System.out.println("及格");
}
else if(grade.equals("D")){
System.out.println("不及格");
}
else{
System.out.println("未知等级");
}
//write your code here......
}
}
三种解法
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String grade =scanner.next();
//write your code here......
scanner.close();
//等号比较字符串时会比较地址值,因为String是引用数据类型
//而String的equals被重写过,所以比较的是内容是否相等
System.out.print("A".equals(grade) ? "优秀" : "B".equals(grade)
? "良好" : "C".equals(grade)
? "及格" : "D".equals(grade)
? "不及格" : "未知等级");
}
}
JAVA8 邮箱验证
描述
请根据给出的正则表达式来验证邮箱格式是否合法,如果用户输入的格式合法则输出「邮箱格式合法」,否则输出「邮箱格式不合法」。
输入描述:
任意字符串
输出描述:
根据输入的邮箱格式判断其合法于不合法,若输入字符串符合邮箱格式则输出邮箱格式合法,否则输出邮箱格式不合法
示例1
输入:
123123@nowcoder.com
输出:
邮箱格式合法
示例2
输入:
123123
输出:
邮箱格式不合法
一种解法
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.next();
String emailMatcher="[a-zA-Z0-9]+@[a-zA-Z0-9]+\\.[a-zA-Z0-9]+";
//修饰符+表示至少匹配其中的一个字符
//修饰符?表示可以匹配其中零个或一个字符
//A-z作用等于a-zA-Z
// \d匹配数字0-9
// \D匹配非0-9
// \w匹配字母、数字、下划线,除了特殊字符和空格
// {n,m}匹配至少n次,至多m次
// ^表示字符串匹配开始的标志
// 更多正则表达式匹配详见:https://www.runoob.com/java/java-regular-expressions.html
//write your code here......
if(str.matches(emailMatcher)){
System.out.println("邮箱格式合法");
}else {
System.out.println("邮箱格式不合法");
}
}
}
二种解法
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.next();
String emailMatcher="[a-zA-Z0-9]+@[a-zA-Z0-9]+\\.[a-zA-Z0-9]+";
//利用matches()方法进行正则匹配,如果合法,则输出"邮箱格式合法",否则输出"邮箱格式不合法"
System.out.println(str.matches(emailMatcher)?"邮箱格式合法":"邮箱格式不合法");
}
}
JAVA9 数列求和
描述
有数列为:9,99,999,…,9999999999。要求使用程序计算此数列的和,并在控制台输出结果。(请尝试使用循环的方式生成这个数列并同时在循环中求和)
输入描述:
无
输出描述:
将该数列的和直接输出
一种解法
public static void main(String[] args) {
long []Array=new long[10];
Array[0]=9;
long sum=0;
for (int i = 1; i < 10; i++) {
Array[i]=Array[i-1]*10+9;
sum+=Array[i];
}
System.out.println(sum+9);
}
}
二种解法
public static void main(String[] args) {
//write your code here........
long[] str=new long[10];
long num=0;
for(int i=1;i<=10;i++){
str[i-1]=(long)Math.pow(10,(double)i)-1;
num+=str[i-1];
}
System.out.print(num);
}
JAVA10 统计输入正数个数
描述
控制台输入整数,请设计一个死循环,当用户输入非正数时停止输入。请给出用户输入的正整数个数(默认输入个数不超过2147483647)
输入描述:
若干整数,整数之间用空格隔开
输出描述:
控制台输入的正整数个数
示例1
输入:
1 2 3 4 5 6 7 0
输出:
7
一种解法
public static void main(String[] args) {
int count = 0;
Scanner scanner = new Scanner(System.in);
while (true) {
int num = scanner.nextInt();
if (num <= 0) break;
else count++;
}
System.out.println(count);
}
}
JAVA11 求最小公倍数
**描述
编写一个方法,该方法的返回值是两个不大于100的正整数的最小公倍数
输入描述:
两个int类型变量作为方法的参数
输出描述:
int类型的变量,值为两个数的最小公倍数
示例1
输入:
3 7
输出:
21
一种解法
import java.util.*;
public class Main {
public static void main(String[] args) {
//标准输入
Scanner console = new Scanner(System.in);
int m = console.nextInt();
int n = console.nextInt();
//计算最小公倍数
int result = getCM(m, n);
//输出结果
System.out.println(result);
}
//计算最小公倍数
public static int getCM(int m, int n){
//计算m、n中较大者
int max=Math.max(m,n);
//从max到m*n之间找最小公倍数
for(int i=max;i<=m*n;i++){
//如果既能被m整除又能被n整除,说明是最小公倍数,直接返回
if(i%m==0&&i%n==0){
return i;
}
}
return -1;
}
}
二种解法
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
int m = console.nextInt();
int n = console.nextInt();
int result = getCM(m, n);
System.out.println(result);
}
public static int getCM(int m, int n) {
int max = (m > n) ? m : n;
int min = (m < n) ? m : n;
int i;
for (i = min; i <= min * max; i++) {
if (i % min == 0 && i % max == 0) {
return i;
}
}
return 0;
}
}