11、数字的排列组合
题目:有1、2、3、4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
11.1、程序分析
- 实现思路
1、定义变量作为计数器
2、使用循环实现百位、十位、个位数的遍历
3、使用条件语句对遍历数据进行判别
4、打印出结果
暴力解法
11.2、代码实现
public class Test {
public static void main(String[] args) {
//1、计数器
int count = 0;
//2、循环遍历各位数据
for (int i = 1; i <= 4; i++) {
for (int j = 1; j <= 4; j++) {
for (int k = 1; k <= 4; k++) {
//3、数据判断(百、十、个位三个数不相同)
if (k != i && k != j && i != j) {
count++;
//4、打印组合结果
System.out.println(i+""+j+""+k);
//或者System.out.println(i*100+j*10+k);
}
}
}
}
System.out.println("1,2,3,4组合成三位数的个数为:"+count);
}
}
12、发放奖金
题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润,求应发放奖金总数?
12.1、程序分析
- 实现思路
1、定义所需变量及输入合适数据
2、判断数据并计算奖金
3、打印结果
12.2、代码实现
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
//1、定义变量及输入合适数据
double profit;//利润
double bonus = 0;//奖金
do {
System.out.print("请输入当月利润,求应发放奖金总数,利润单位(万元):");
profit = input.nextInt();
if (profit <= 0) {
System.out.println("当月利润数据不合格,请重新输入");
}
} while (profit <= 0);
//2、判断数据并计算奖金
if (profit <= 10) {
bonus = profit * 0.10;
} else if (profit > 10 && profit <= 20) {
bonus = 1.0 + (profit - 10) * 0.075;
} else if (profit > 20 && profit <= 40) {
bonus = 1.75 + (profit - 20) * 0.05;
} else if (profit > 40 && profit <= 60) {
bonus = 2.75 + (profit - 40) * 0.03;
} else if (profit > 60 && profit <= 100) {
bonus = 3.95 + (profit - 60) * 0.015;
} else {
bonus = profit * 0.01;
}
//3、打印结果
System.out.printf("当月利润为" + profit + "万元,应发放奖金总数" + bonus+"万元。");
}
}