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);
以上是关于Java练习题(持续更新)的主要内容,如果未能解决你的问题,请参考以下文章
JAVA小白 编程练习500题 超详细!!!带答案!!!持续更新中~
JAVA小白 编程练习500题2帖 超详细!!!带答案!!!持续更新中~