如果是刚接触或者刚学习java,练习一些基础的算法还是必须的,可以提升思维和语法的使用。
2、输出三个int数中的最大值
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(“出现异常”);
}
}
}
4、完成成绩等级输出程序
如果用户输入的分数正确(0-100),则根据表-1中的规则计算该分数所对应的的级别,并计算结果。
5、完成命令解析程序
问题:有一个命令解析程序,该程序提供三个功能选型供用户选择,用户选择某功能后,程序在界面上输出用户所选择的的功能名称。程序的交互如图:
6、完成收银柜台收款程序
编写一个收银柜台收款程序。根据单价、购买数量以及收款进行计算并输出应收金额和找零;当总价大于或者等于500,享受8折优惠。控制台交互如下:
7、java从键盘输入三个整数,实现从小到大排序
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);
}
}
}
}
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<0?0.0:
taxSalary<=1500?taxSalary*0.03:
taxSalary<=4500?taxSalary*0.1-105:
taxSalary<=9000?taxSalary*0.2-555:
taxSalary<=35000?taxSalary*0.25-1005:
taxSalary<=55000?taxSalary*0.3-2755:
taxSalary<=80000?taxSalary*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);
}
}
10、输出九九乘法表
11、随机产生一个从0-100之间的整数,判断是否是质数
质数又称素数,是指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数 。
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、查找数组最小值,并将数组扩容成新数组
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));
}
}