Java练习题(持续更新)
Posted 康小庄
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java练习题(持续更新)相关的知识,希望对你有一定的参考价值。
编程计算某年某月有几天。其中判别闰年的条件是: 能被4整除但不能被100整除的年是闰年,能被400整除的年也是闰年。(要求年月值是通过输入产生)。
public static void solution1()
System.out.println("输入一个年月,格式如下 2001.8");
Scanner scanner = new Scanner(System.in);
String string = scanner.nextLine();
String[] split = string.split("\\\\.");
if (judgeYear(Integer.parseInt(split[0])))
System.out.println(Integer.parseInt(split[0]) + "年是闰年");
if (Integer.parseInt(split[1]) == 2)
System.out.println(Integer.parseInt(split[1]) + "月" + judgeMonth(Integer.parseInt(split[1])) + 1 + "天");
else
System.out.println(Integer.parseInt(split[0]) + "不是闰年");
System.out.println(Integer.parseInt(split[1]) + "月" + judgeMonth(Integer.parseInt(split[1])) + "天");
// 编程计算某年某月有几天。其中判别闰年的条件是: 能被4整除但不能被100整除的年是闰年,能被400整除的年也是闰年。(要求年月值是通过输入产生)
public static boolean judgeYear(int year)
return year % 4 == 0 && year % 100 != 0 || year % 400 == 0 ? true : false;
public static int judgeMonth(int month)
HashMap<Integer, Integer> map = new HashMap<>();
map.put(1, 31);
map.put(2, 28);
map.put(3, 31);
map.put(4, 30);
map.put(5, 31);
map.put(6, 30);
map.put(7, 31);
map.put(8, 31);
map.put(9, 30);
map.put(10, 31);
map.put(11, 30);
map.put(12, 31);
return map.get(month);
输入一个成绩,根据输入的成绩判断成绩的等级,比如输入成绩95,输出结果为:你输入的成绩为“优”。
public static void solution2()
Scanner scanner = new Scanner(System.in);
System.out.println("输入一个成绩");
int grade = scanner.nextInt();
if (grade > 100 || grade < 0)
System.out.println("输入成绩有误");
if (grade > 90 && grade < 100)
System.out.println("输入成绩为优秀");
else if (grade >= 60 && grade < 90)
System.out.println("输入成绩为良好");
else
System.out.println("输入成绩为不及格");
将100以内能被3整除的数输出来
// 将100以内能被3整除的数输出来
public static void solution3()
for (int i = 0; i < 101; i++)
if (i % 3 == 0)
System.out.println(i);
设计程序完成向屏幕打印1000以内的素数和。
/**
*
* @Title: solution5
* @Description: 打印1000以内的素数
* @author: KangXiaoZhuang
* @param:
* @return: void
* @throws
*/
public static void solution5()
for (int i = 1; i <= 1000; i++)
int count = 0;
for (int j = 1; j <= i; j++)
if (i % j == 0)
count++;
if (count == 2)
System.out.println(i);
设计程序打印三位数的水仙花数。
/**
*
* @Title: solution6
* @Description: 三位数的水仙花数
* @author: KangXiaoZhuang
* @param:
* @return: void
* @throws
*/
public static void solution6()
for (int i = 100; i <= 999; i++)
// 拆分三位数字的每个位上的数
int first = i / 100;
int second = i / 10 % 10;
int third = i % 10;
if (first * first * first + second * second * second + third * third * third == i)
System.out.print(i + " ");
初始化一个无序数组,然后设计程序完成对数组的冒泡排序,并对排序前后的数组进行打印。
/**
*
* @Title: bubbleSort
* @Description: 冒泡排序
* @author: KangXiaoZhuang
* @param: @param arr
* @return: void
* @throws
*/
public static void bubbleSort(int[] arr)
int temp = 0;
for (int i = 0; i < arr.length - 1; i++)
for (int j = 0; j < arr.length - 1 - i; j++)
// 如果前面的数比后面的数大 交换
if (arr[j] > arr[j + 1])
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
System.out.println(Arrays.toString(arr));
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? //这是一个菲波拉契数列问题
/**
*
* @Title: f
* @Description: 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?//这是一个菲波拉契数列问题
* @author: KangXiaoZhuang
* @param: @param n
* @param: @return
* @return: int
* @throws
*/
public static int f(int n)
if (n != 1 && n != 2)
if (n != 3)
return f(n - 1) + f(n - 2);
else
return 2;
else
return 1;
题目:判断101-200之间有多少个素数,并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。
/**
* @Title: solution07
* @Description:程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。
* @author: KangXiaoZhuang
* @param:
* @return: void
* @throws
*/
public static void solution07()
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
boolean isPrime = true;
for (int i = 2; i < Math.sqrt(num); i++)
if (num % i == 0)
isPrime = false;
break;
if (isPrime == true)
System.out.println(num + "是素数");
else
System.out.println(num + "不是素数");
题目:利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
/**
*
* @Title: solution08
* @Description: 题目:利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
* @author: KangXiaoZhuang
* @param:
* @return: void
* @throws
*/
public static void solution08()
System.out.println("输入一个成绩");
Scanner scanner = new Scanner(System.in);
int grade = scanner.nextInt();
System.out.println(grade >= 90 ? "A" : grade >= 60 ? "B" : "C");
if (grade >= 90)
System.out.println("A");
else if (grade <= 89 && grade >= 60)
System.out.println("B");
else
System.out.println("C");
题目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
/**
*
* @Title: solution09
* @Description: 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
* @author: KangXiaoZhuang
* @param:
* @return: void
* @throws
*/
public static void solution09()
System.out.println("请输入原始的数字");
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
System.out.println("请输入要相加的个数");
int n = scanner.nextInt();
int temp = 0;
int sum = 0;
for (int i = 0; i < n; i++)
temp += a * (int) Math.pow(10, i);
sum += temp;
System.out.print(sum);
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
public static void solution11()
int i;
int x = 1;
for (i = 9; i >= 1; i--)
x = (x + 1) * 2;
System.out.println("第一天共摘了桃子为:" + x);
设计程序打印如下图案
*
***
*****
*******
*********
public static void solution12()
for (int i = 1; i <= 5; i++)
for (int j = 1; j <= 2 * i - 1; j++)
System.out.print("*");
System.out.println();
题目:求1+2!+3!+…+5!的和
public static void solution13()
int sum = 0;
for (int i = 1; i < 6; i++)
sum += factorial(i);
System.out.println(sum);
public static int factorial(int n)
if (n == 1)
return 1;
return n * factorial(n - 1);
题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
public static void solution14()
int age=10;
for(int i=1;i<5;i++)
age+=2;
System.out.println(age);
二维数组 存储 三名同学 三门成绩 计算三个同学平均成绩 三门课的平均分
public static void main(String[] args)
Student[] students = new Student(1, "小红"), new Student(2, "小庄"), new Student(3, "小康") ;
String[] name = students[0].getName(), students[2].getName(), students[1].getName() ;
String[] subject = "语文", "数学", "英语" ;
int[][] score = 80, 75, 92 , 61, 65, 71 , 59, 63, 70 ;
TestMatrix(subject, name, score);
public static void TestMatrix(String[] subject, String[] name, int arr[][])
int sumScore = 0;
int sumSub = 0;
int j = 0;
int index = 0;
while (j < 3)
for (int i = 0; i < arr.length; i++)
sumScore += arr[j][i];
System.out.println(name[j] + "同学的总分为-->" + sumScore + ",平均分为" + sumScore / 3);
j++;
sumScore JAVA小白 编程练习500题 超详细!!!带答案!!!持续更新中~
炫“库”行动☀️人大金仓数据库管理系统☀️ - SQL&JDBC&整合MyBatis框架&登录注册Demo实现(持续更新中......)
JAVA小白 编程练习500题2帖 超详细!!!带答案!!!持续更新中~