A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 驰马定中原 中级黑马   /  2016-6-2 00:29  /  475 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

【程序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{
[size=10.0000pt]        public static void main(String[] args){
[size=10.0000pt]        [size=10.0000pt]        System.out.print("请输入当前利润[size=10.0000pt]:");
[size=10.0000pt]        [size=10.0000pt]        long profit = Long.parseLong(key_Input());
[size=10.0000pt]        [size=10.0000pt]        System.out.println("应发奖金[size=10.0000pt]:"+bonus(profit));
[size=10.0000pt]        [size=10.0000pt]}
[size=10.0000pt]        //接受从键盘输入的内容
[size=10.0000pt]        private static String key_Input(){
[size=10.0000pt]        [size=10.0000pt]        String str = null;
[size=10.0000pt]        [size=10.0000pt]        BufferedReader bufIn = new BufferedReader(new InputStreamReader(System.in));
[size=10.0000pt]        [size=10.0000pt]        try{
[size=10.0000pt]        [size=10.0000pt]        [size=10.0000pt]        str = bufIn.readLine();
[size=10.0000pt]        [size=10.0000pt]        }catch(IOException e){
[size=10.0000pt]        [size=10.0000pt]        [size=10.0000pt]        e.printStackTrace();
[size=10.0000pt]        [size=10.0000pt]        }finally{
[size=10.0000pt]        [size=10.0000pt]        [size=10.0000pt]        try{
[size=10.0000pt]        [size=10.0000pt]        [size=10.0000pt]        [size=10.0000pt]        bufIn.close();
[size=10.0000pt]        [size=10.0000pt]        [size=10.0000pt]        }catch(IOException e){
[size=10.0000pt]        [size=10.0000pt]        [size=10.0000pt]        [size=10.0000pt]        e.printStackTrace();
[size=10.0000pt]        [size=10.0000pt]        [size=10.0000pt]        [size=10.0000pt]}
[size=10.0000pt]        [size=10.0000pt]        [size=10.0000pt]}
[size=10.0000pt]        [size=10.0000pt]        return str;
[size=10.0000pt]        [size=10.0000pt]}
[size=10.0000pt]        //计算奖金
[size=10.0000pt]        private static long bonus(long profit){
[size=10.0000pt]        [size=10.0000pt]        long prize = 0;
[size=10.0000pt]        [size=10.0000pt]        long profit_sub = profit;
[size=10.0000pt]        [size=10.0000pt]        if(profit>1000000){
[size=10.0000pt]        [size=10.0000pt]        [size=10.0000pt]        profit = profit_sub-1000000;
[size=10.0000pt]        [size=10.0000pt]        [size=10.0000pt]        profit_sub = 1000000;
[size=10.0000pt]        [size=10.0000pt]        [size=10.0000pt]        prize += profit*0.01;
[size=10.0000pt]        [size=10.0000pt]        [size=10.0000pt]}
[size=10.0000pt]        [size=10.0000pt]        if(profit>600000){
[size=10.0000pt]        [size=10.0000pt]        [size=10.0000pt]        profit = profit_sub-600000;
[size=10.0000pt]        [size=10.0000pt]        [size=10.0000pt]        profit_sub = 600000;
[size=10.0000pt]        [size=10.0000pt]        [size=10.0000pt]        prize += profit*0.015;
[size=10.0000pt]        [size=10.0000pt]        [size=10.0000pt]}
[size=10.0000pt]        [size=10.0000pt]        if(profit>400000){
[size=10.0000pt]        [size=10.0000pt]        [size=10.0000pt]        profit = profit_sub-400000;
[size=10.0000pt]        [size=10.0000pt]        [size=10.0000pt]        profit_sub = 400000;
[size=10.0000pt]        [size=10.0000pt]        [size=10.0000pt]        prize += profit*0.03;
[size=10.0000pt]        [size=10.0000pt]        [size=10.0000pt]}
[size=10.0000pt]        [size=10.0000pt]        if(profit>200000){
[size=10.0000pt]        [size=10.0000pt]        [size=10.0000pt]        profit = profit_sub-200000;
[size=10.0000pt]        [size=10.0000pt]        [size=10.0000pt]        profit_sub = 200000;
[size=10.0000pt]        [size=10.0000pt]        [size=10.0000pt]        prize += prize*0.05;
[size=10.0000pt]        [size=10.0000pt]        [size=10.0000pt]}
[size=10.0000pt]        [size=10.0000pt]        if(profit>100000){
[size=10.0000pt]        [size=10.0000pt]        [size=10.0000pt]        profit = profit_sub-100000;
[size=10.0000pt]        [size=10.0000pt]        [size=10.0000pt]        profit_sub = 100000;
[size=10.0000pt]        [size=10.0000pt]        [size=10.0000pt]        prize += profit*0.075;
[size=10.0000pt]        [size=10.0000pt]        [size=10.0000pt]}
[size=10.0000pt]        [size=10.0000pt]        prize += profit_sub*0.1;
[size=10.0000pt]        [size=10.0000pt]        return prize;
[size=10.0000pt]        [size=10.0000pt]}
[size=10.0000pt]}
【程序13】
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。
public class Prog13{
        public static void main(String[] args){
                int n=0;
                for(int i=0;i<100001;i++){
                        if(isCompSqrt(i+100) && isCompSqrt(i+268)){
                                n = i;
                                break;
                        }
                }
                System.out.println("所求的数是:"+n);
        }
        //判断完全平方数
        private static boolean isCompSqrt(int n){
                boolean isComp = false;
                for(int i=1;i<Math.sqrt(n)+1;i++){
                        if(n==Math.pow(i,2)){
                                isComp = true;
                                break;
                        }
                }
                return isComp;
        }
}
【程序14】
题目:输入某年某月某日,判断这一天是这一年的第几天?
程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
import java.util.Scanner;
public class Prog14{
        public static void main(String[] args){
                Scanner scan = new Scanner(System.in).useDelimiter("\\D");//匹配非数字
                System.out.print("请输入当前日期(年-月-日):");
                int year = scan.nextInt();
                int month = scan.nextInt();
                int date = scan.nextInt();
                scan.close();
                System.out.println("今天是"+year+"年的第"+analysis(year,month,date)+"天");
        }
        //判断天数
        private static int analysis(int year, int month, int date){
                int n = 0;
                int[] month_date = new int[] {0,31,28,31,30,31,30,31,31,30,31,30};
                if((year%400)==0 || ((year%4)==0)&&((year%100)!=0))
                  month_date[2] = 29;
                for(int i=0;i<month;i++)
                  n += month_date;
                return n+date;
        }
}
【程序15】
题目:输入三个整数x,y,z,请把这三个数由小到大输出。
程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。
import java.util.Scanner;
public class Prog15{
        public static void main(String[] args){
                Scanner scan = new Scanner(System.in).useDelimiter("\\D");
                System.out.print("请输入三个数:");
                int x = scan.nextInt();
                int y = scan.nextInt();
                int z = scan.nextInt();
                scan.close();
                System.out.println("排序结果:"+sort(x,y,z));
        }
        //比较两个数的大小
        private static String sort(int x,int y,int z){
                String s = null;
                if(x>y){
                        int t = x;
                        x = y;
                        y = t;
                }
                if(x>z){
                        int t = x;
                        x = z;
                        z = t;
                }
                if(y>z){
                        int t = z;
                        z = y;
                        y = t;
                }
                s = x+" "+y+" "+z;
                return s;
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马