当前位置 博文首页 > m0_53521757的博客:java基础代码练习(三)
【例11】有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
答案:
package com.wz.extendsdemo;
//有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
public class Subject11 {
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i=1;i<=4;i++) {
for(int j=1;j<=4;j++) {
for(int k=1;k<=4;k++) {
if(i!=j&&j!=k&&i!=k) {
System.out.println("1,2,3,4可以组成的三位数:"+i+j+k);
}
}
}
}
}
}
输出:
【例12】企业发放的奖金根据利润提成。
从键盘输入当月利润I,求应发放奖金总数?
答案:
package com.wz.extendsdemo;
import java.util.Scanner;
/* 利润(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%提成
*
* */
public class Subject12 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("请输入您的业绩:");
Scanner scanner = new Scanner(System.in);
double p= scanner.nextInt();
System.out.println("您得到的提成为:"+premium(p));
}
public static double premium(double profit){
double premium = 0;
if(profit <= 100000){
premium = profit*0.1;
}else if(profit > 100000 && profit <= 200000){
premium = (profit - 100000) * 0.075 + premium(100000);
}else if(profit > 200000 && profit <= 400000){
premium = (profit - 200000) * 0.05 + premium(200000);
}else if(profit > 400000 && profit <= 600000){
premium = (profit - 400000) * 0.03 + premium(400000);
}else if(profit > 600000 && profit <= 1000000){
premium = (profit - 600000) * 0.015 + premium(600000);
}else{
premium = (profit - 1000000) * 0.01 + premium(1000000);
}
return premium;
}
}
输出示例:
【例13】一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
答案:
package com.wz.extendsdemo;
//一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
public class Subject13 {
public static void main(String[] args) {
// TODO Auto-generated method stub
squareNum();
}
public static void squareNum(){
int i = 1;
while(true){
int tmp = i*i;
int z = 1;
while(true){
if(z*z - tmp >=168){
break;
}
z++;
}
if(z*z - i*i == 168 && (z*z - 168-100)>=0){
System.out.println("一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,则该数为:"+(z*z - 168-100));
break;
}else{
i++;
}
}
}
}
输出:
【例14】 输入某年某月某日,判断这一天是这一年的第几天?
答案:
package com.wz.extendsdemo;
// 输入某年某月某日,判断这一天是这一年的第几天
public class Subject14 {
public static void main(String[] args) {
// TODO Auto-generated method stub
dayNum("2018-03-08");
dayNum("1900-03-08");
dayNum("2000-03-08");
dayNum("2020-03-08");
dayNum("2018-02-08");
dayNum("1900-02-08");
dayNum("2000-02-08");
dayNum("2020-02-08");
}
public static void dayNum(String date){
String[] dateStr = date.split("-");
int dayNum = 0;
if(leapYear(dateStr[0])){
dayNum = month(dateStr[1] ,"1") + Integer.parseInt(dateStr[2]);
}else{
dayNum = month(dateStr[1] ,"0") + Integer.parseInt(dateStr[2]);
}
System.out.println("输入日期为该("+dateStr[0]+")年的第"+dayNum+"天");
}
/**
* 根据年份判断闰年还是普通年
* @param year
* @return
*/
public static boolean leapYear(String year){
int years = Integer.parseInt(year);
if((years%4 ==0 && years%100!=0) || years%400 == 0){
return true;
}
return false;
}
/**
* 根据月份获取天数
* @param month
* @param flag
* @return
*/
public static int month(String month,String flag){
int dayNum = 0;
switch (month){
case "01": dayNum = 0; break;
case "02": dayNum = month("01", flag) +31; break;
case "03":
if("0".equals(flag)) {
dayNum = month("02", flag) + 28;
}else {
dayNum = month("02"