用Java编写经典小程序

时间:2021-05-02

如果是刚接触或者刚学习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; 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; 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

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章