如果是刚接触或者刚学习java,练习一些基础的算法还是必须的,可以提升思维和语法的使用
1、输出两个int数中的最大值
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
import java.util.scanner;
public class demo {
public static void main(string[] args) {
scanner scanner = new scanner(system.in);
system.out.println( "请依次输入两个整数:a,b(以空格隔开)" );
/*比较两个数的大小*/
int a = scanner.nextint();
int b = scanner.nextint();
int max;
if (a >= b){
max = a;
} else {
max = b;
}
system.out.println( "最大值为" +max);
}
}
}
|
2、输出三个int数中的最大值
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
package demo;
import java.util.scanner;
public class demo {
public static void main(string[] args) {
scanner scanner = new scanner(system.in);
system.out.println( "请依次输入两个整数:a,b(以空格隔开)" );
int a = scanner.nextint();
int b = scanner.nextint();
int c = scanner.nextint();
scanner.close();
/*方法一*/
int d=(a>b)a:b;
int e=(d>c)d:c;
system.out.println("最大值为"+e);
/*方法二*/
if (a>b && a>c){
system.out.println( "最大值为" +a);
} else if (b>c && b>a){
system.out.println( "最大值为" +b);
} else if (c>b && c>a){
system.out.println( "最大值为" +c);
} else {
system.out.println( "出现异常" );
}
}
}
|
3、编写程序判断某一个年份是否是闰年
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
package demo;
import java.util.scanner;
/*判断闰年
由用户输入任意一个年份,能被4整除但不能被100整除,或者能被400整除,是闰年。
要求判断一个年份是否为闰年。
要求输出:此年份是否是闰年
*/
public class demo {
public static void main(string[] args) {
scanner scanner = new scanner(system.in);
system.out.println("请输入年份:");
int year = scanner.nextint();
/*方法一*/
if((year % 4 ==0 && year % 100 !=0) || year%400 ==0){
system.out.println("这个年份是闰年");
}else{
system.out.println("这个年份不是闰年");
}
/*方法二*/
boolean isleapyear = (year % 4 == 0 && year % 100 != 0 ) || year% 400 == 0 ;
string string = isleapyearyear+ "是闰年" :year+ "不是闰年" ;
system.out.println(string);
}
}
|
4、完成成绩等级输出程序:如果用户输入的分数正确(0-100),则根据表-1中的规则计算该分数所对应的的级别,并计算结果。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
package demo;
import java.util.scanner;
/*
* 成绩等级划分表
* >= 90 a
* >=80 b
* >=60 c
* <60 d
*
* 分数范围:0-100
*
* 需要有2个判断*/
public class demo {
public static void main(string[] args) {
scanner scanner = new scanner(system.in);
system.out.println( "请输入分数:" );
double score = scanner.nextdouble();
scanner.close();
if (score < 0 || score > 100 ){
system.out.println( "输入的分数不在0-100之间,不符合要求" );
} else if (score >= 90 ){
system.out.println( "a" );
} else if (score >= 80 ){
system.out.println( "b" );
} else if (score >= 60 ){
system.out.println( "c" );
} else {
system.out.println( "d" );
}
}
}
|
5、完成命令解析程序:有一个命令解析程序,该程序提供三个功能选型供用户选择,用户选择某功能后,程序在界面上输出用 户所选择的的功能名称。程序的交互如图:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
package demo;
import java.util.scanner;
/*
* 有一个命令解析程序,该程序提供三个功能选型供用户选择,
* 用户选择某功能后,程序在界面上输出用户所选择的的功能名称。
*
* */
public class demo {
public static void main(string[] args) {
scanner scanner = new scanner(system.in);
system.out.println( "请选择功能:1.显示全部记录 2.查询登录记录 0.退出" );
int command = scanner.nextint();
scanner.close();
switch (command) {
case 0 :
system.out.println( "欢迎使用" );
break ;
case 1 :
system.out.println( "显示全部记录……" );
break ;
case 2 :
system.out.println( "查询登录记录……" );
break ;
default :
system.out.println( "输入错误!" );
}
}
}
|
6、完成收银柜台收款程序:编写一个收银柜台收款程序,根据单价、购买数量以及收款进行计算并输出应收金额和找零;当总价大于或者等于500,享受8折优惠。控制台交互如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
package demo;
import java.util.scanner;
/*
* 需求:
* 编写一个收银柜台收款程序。根据单价、购买数量以及收款进行计算并输出应收金额和找零;
* 当总价大于或者等于500,享受8折优惠。
*
*/
public class demo {
public static void main(string[] args) {
scanner scanner = new scanner(system.in);
system.out.println( "请输入单价(¥):" );
double price = scanner.nextdouble();
system.out.println( "请输入数量:" );
double amount = scanner.nextdouble();
system.out.println( "请输入收款金额:" );
double count = scanner.nextdouble();
double totalmoney = price*amount;
if (totalmoney > 500 ){
totalmoney = totalmoney* 0.8 ;
}
double change = count - totalmoney;
system.out.println( "应收金额为:" +totalmoney + "找零为:" +change);
}
}
|
7、java从键盘输入三个整数,实现从小到大排序。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
package demo;
import java.util.scanner;
/*
* java从键盘输入三个整数,实现从小到大排序
*
**/
public class demo {
public static void main(string[] args) {
scanner scanner = new scanner(system.in);
system.out.println( "请输入三个整数,以空格隔开:" );
int a = scanner.nextint();
int b = scanner.nextint();
int c = scanner.nextint();
scanner.close();
system.out.println( "输入的值为:a = " + a + ", b = " + b + ", c = " + c);
if (a > b){
if ( b > c) {
system.out.println( "排序后的值为:" + c + "," + b + "," + a);
} else if ( c > a){
system.out.println( "排序后的值为:" + b + "," + a + "," + c);
} else {
system.out.println( "排序后的值为:" + b + "," + a + "," + c);
}
} else {
if (c < a){
system.out.println( "排序后的值为:" + c + "," + a + "," + b);
} else if (c > b){
system.out.println( "排序后的值为:" + a + "," + b + "," + c);
} else {
system.out.println( "排序后的值为:" + a + "," + c + "," + b);
}
}
}
}
|
8、计算个人所得税 北京地区的个人所得税计算公式:应纳税额 = (工资薪金所得 - 扣除数)*适用税率 - 速算扣除数 其中,扣除数为3500,适用税率以及速算扣除数如下表所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
package demo;
import java.util.scanner;
/*
* 北京地区的个人所得税计算公式:
应纳税额 = (工资薪金所得 - 扣除数)*适用税率 - 速算扣除数
其中,扣除数为3500
*/
public class demo {
public static void main(string[] args) {
scanner scanner = new scanner(system.in);
system.out.println("请输入你的税前工资:");
int salarybeforetax = scanner.nextint();
scanner.close();
int taxsalary = salarybeforetax - 3500;
double tax;
/* 方法一*/
tax = taxsalary<00.0:
taxsalary<=1500taxsalary*0.03:
taxsalary<=4500taxsalary*0.1-105:
taxsalary<=9000taxsalary*0.2-555:
taxsalary<=35000taxsalary*0.25-1005:
taxsalary<=55000taxsalary*0.3-2755:
taxsalary<=80000taxsalary*0.35-5505:
taxsalary*0.45-13505;
system.out.println("个人应缴纳税款为:"+tax);
/*方法二*/
if ( taxsalary < 0 ){
tax = 0 ;
} else if ( taxsalary <= 1500 ){
tax = taxsalary* 0.03 ;
} else if ( taxsalary <= 4500 ){
tax = taxsalary* 0.1 - 105 ;
} else if ( taxsalary <= 9000 ){
tax = taxsalary* 0.2 - 555 ;
} else if ( taxsalary <= 35000 ){
tax = taxsalary* 0.25 - 1005 ;
} else if ( taxsalary <= 55000 ){
tax = taxsalary* 0.3 - 2755 ;
} else if ( taxsalary <= 80000 ){
tax = taxsalary* 0.35 - 5505 ;
} else {
tax = taxsalary* 0.45 - 13505 ;
}
system.out.println( "个人应缴纳税款为:" +tax);
}
}
|
9、输入年份和月份,输出天数。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
package demo;
import java.util.scanner;
/*
提示:
1.需要判断是否是闰年,2月份的天数跟是否是闰年有关系;
2.用switch-case判断每个月的天数
*/
public class demo{
public static void main(string[] args) {
scanner scanner = new scanner(system.in);
system.out.println("请输入年份:");
int year = scanner.nextint();
system.out.println("请输入月份:");
int month = scanner.nextint();
int daynum = thedaynum(month); //先根据月份得出天数,如果是闰年,对2月份的天数重新获取
if(isleapyear(year)){
if(month == 2){
daynum ++; //如果是闰年,2月份增加一天
}
system.out.print(year + "是闰年,");
}else{
system.out.print(year + "不是闰年,");
}
system.out.println(year + "年" + month + "月份共有" + daynum + "天");
}
/*判断是否是闰年
* 能被4整除但不能被100整除,或者能被400整除,是闰年
*/
public static boolean isleapyear(int year) {
if((year % 4 ==0 && year % 100 !=0) || year%400 ==0){
return true;
}else{
return false;
}
}
/*判断天数*/
public static int thedaynum( int month) {
switch (month) {
case 1 :
return 31 ;
case 2 :
return 28 ;
case 3 :
return 31 ;
case 4 :
return 30 ;
case 5 :
return 31 ;
case 6 :
return 30 ;
case 7 :
return 31 ;
case 8 :
return 31 ;
case 9 :
return 30 ;
case 10 :
return 31 ;
case 11 :
return 30 ;
case 12 :
return 31 ;
default :
system.out.println( "对不起,您输入的月份有误!" );
return 0 ;
}
}
}
|
10、输出九九乘法表。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
package demo;
/* author:wendy
* 问题:
* 直接输出九九乘法表
* */
public class demo {
public static void main(string[] args) {
//i变量用于控制行数
for ( int i = 0 ; i <= 9 ; i++) {
//j变量用于控制每行中参与计算的数值
for ( int j = 1 ; j <= i; j++) {
system.out.print(j + "*" + i + "=" + i*j + "\t" );
}
//每行输出之后需要换行
system.out.println();
}
}
}<strong>
</strong>
|
11、随机产生一个从0-100之间的整数,判断是否是质数 质数又称素数,是指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
package demo;
import java.util.random;
public class primenum {
public static void main(string[] args) {
int num;
random random = new random();
num = random.nextint( 100 );
system.out.println( "随机产生的数为:" + num);
system.out.println(isprime(num));
}
public static boolean isprime( int num) {
if (num < 2 ) {
return false ;
}
if (num == 2 ) {
return true ;
}
if (num % 2 == 0 ) {
return false ;
}
for ( int i = 3 ; i <= math.sqrt(num); i += 2 ) {
if (num % i == 0 ) {
return false ;
}
}
return true ;
}
}
|
12、查找数组最小值,并将数组扩容成新数组。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
package demo;
import java.util.arrays;
import java.util.random;
/*
* author:wendy
* 问题:随机产生10个从0-100之间的整数,并查找最小值;
* 将该数组扩容成新数组,把最小值存在新数组的第一个位置。
* 步骤:
* 1.构造一个长度为10的数组,利用random随机产生10个0-100之间的整数;
* 2.寻找最小值,利用for循环
* 3.扩容 利用arrays.coprof()构造新数组,将其长度设置为11
* 4.遍历新数组,从后往前遍历,以此赋值,然后将2中找到的最小值存在数组的第一个
* */
public class copyof {
public static void main(string[] args) {
int [] arr = new int [ 10 ];
//随机产生10个 0-100之间的整数
random random = new random();
for ( int i = 0 ; i < 10 ; i ++) {
arr[i] = random.nextint( 100 );
}
//打印数组的内容
system.out.println( "随机产生的数组为:" + arrays.tostring(arr));
//查找最小的值
int min = arr[ 0 ];
for ( int j = 1 ; j < 10 ; j ++) {
if (min > arr[j]) {
min = arr[j];
}
}
system.out.println( "该数组最小的值为:" + min);
//扩容,将最小值存在扩容之后的第一个
int [] newarr = arrays.copyof(arr, 11 );
//从后往前遍历,将前面的值赋给后面的值,然后将第一个的值赋为最小值min
for ( int k = newarr.length- 1 ; k >= 1 ; k --) {
newarr[k] = newarr[k- 1 ];
}
//将第一个的值赋为最小值min
newarr[ 0 ] = min;
//打印数组的内容
system.out.println( "扩容之后的数组为:" + arrays.tostring(newarr));
}
}
|
这篇文章主要内容对初次接触java算法和思维的学员有很大的帮助,小编会给大家提供相关帮助,请多多关注服务器之家。
原文链接:https://blog.csdn.net/u010297791/article/details/77367589