黑马程序员技术交流社区

标题: java基础题——每帖2题 [打印本页]

作者: 744919632    时间: 2015-12-15 20:52
标题: java基础题——每帖2题
【程序11】
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。
  
public class  Prog11{
  
    public static void main(String[] args){
  
        int count = 0;
  
        int n = 0;
  
        for(int i=1;i<5;i++){
  
            for(int j=1;j<5;j++){
  
                if(j==i)
  
                  continue;
  
                for(int k=1;k<5;k++){
  
                    if(k!=i && k!=j){
  
                        n = i*100+j*10+k;
  
                      System.out.print(n+" ");
  
                      if((++count)%5==0)
  
                      System.out.println();
  
                    }
  
                }
  
            }
  
        }
  
        System.out.println();
  
        System.out.println("符合条件的数共:"+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%提成,从键盘输入当月利润I,求应发放奖金总数?
程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。
  
import java.io.*;
  
public class Prog12{
  
    public  static void main(String[] args){
  
        System.out.print("请输入当前利润:");
  
        long  profit = Long.parseLong(key_Input());
  
        System.out.println("应发奖金:"+bonus(profit));
  
    }
  
    //接受从键盘输入的内容
  
    private  static String key_Input(){
  
        String  str = null;
  
        BufferedReader  bufIn = new BufferedReader(new InputStreamReader(System.in));
  
        try{
  
            str  = bufIn.readLine();
  
        }catch(IOException  e){
  
            e.printStackTrace();
  
        }finally{
  
            try{
  
                bufIn.close();
  
            }catch(IOException  e){
  
                e.printStackTrace();
  
            }
  
        }
  
        return  str;
  
    }
  
    //计算奖金
  
    private  static long bonus(long profit){
  
        long prize = 0;
  
        long  profit_sub = profit;
  
        if(profit>1000000){
  
            profit  = profit_sub-1000000;
  
            profit_sub  = 1000000;
  
            prize  += profit*0.01;
  
        }
  
        if(profit>600000){
  
            profit  = profit_sub-600000;
  
            profit_sub  = 600000;
  
            prize  += profit*0.015;
  
        }
  
        if(profit>400000){
  
            profit  = profit_sub-400000;
  
            profit_sub  = 400000;
  
            prize  += profit*0.03;
  
        }
  
        if(profit>200000){
  
            profit  = profit_sub-200000;
  
            profit_sub  = 200000;
  
            prize  += prize*0.05;
  
        }
  
        if(profit>100000){
  
            profit  = profit_sub-100000;
  
            profit_sub  = 100000;
  
            prize  += profit*0.075;
  
        }
  
        prize  += profit_sub*0.1;
  
        return  prize;
  
    }
  
}
  
  






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2