当前位置 博文首页 > m0_53521757的博客:java基础代码练习(三)

    m0_53521757的博客:java基础代码练习(三)

    作者:[db:作者] 时间:2021-07-15 15:35

    【例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)低于或等于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%提成,

    从键盘输入当月利润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"
    
    下一篇:没有了