首页 / JAVA / 《java练习题》习题集二
《java练习题》习题集二
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了《java练习题》习题集二,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含9261字,纯文字阅读大概需要14分钟。
内容图文
![《java练习题》习题集二](/upload/InfoBanner/zyjiaocheng/1096/a18c437740b64ddea5a35f63d2182b78.jpg)
Java总结:https://www.cnblogs.com/jssj/p/11146205.html
【程序11】
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
/** * 【程序11】 * 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? */ public class Subject11 { public static void main(String[] args) { FormThreeNum(); } public static void FormThreeNum(){ for (int i = 1; i <= 4; i++) { for (int j = 1; j <= 4; j++) { for (int k = 1; k <= 4; 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,求应发放奖金总数?
/** * 【程序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,求应发放奖金总数? */ public class Subject12 { public static void main(String[] args) { System.out.println("请输入您的业绩:"); Scanner scanner = new Scanner(System.in); double profit= scanner.nextInt(); System.out.println("您得到的提成为:"+premium(profit)); } publicstaticdouble premium(double profit){ double premium = 0; if(profit <= 100000){ premium = profit*0.1; }elseif(profit > 100000 && profit <= 200000){ premium = (profit - 100000) * 0.075 + premium(100000); }elseif(profit > 200000 && profit <= 400000){ premium = (profit - 200000) * 0.05 + premium(200000); }elseif(profit > 400000 && profit <= 600000){ premium = (profit - 400000) * 0.03 + premium(400000); }elseif(profit > 600000 && profit <= 1000000){ premium = (profit - 600000) * 0.015 + premium(600000); }else{ premium = (profit - 1000000) * 0.01 + premium(1000000); } return premium; } }
运行结果:
【程序13】
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
/** * 【程序13】 * 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? */ public class Subject13 { public static void main(String[] args) { 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】
题目:输入某年某月某日,判断这一天是这一年的第几天?
/** * 【程序14】 * 题目:输入某年某月某日,判断这一天是这一年的第几天? */ public class Subject14 { public static void main(String[] args) { 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"); } publicstaticvoid 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*/publicstaticboolean leapYear(String year){ int years = Integer.parseInt(year); if((years%4 ==0 && years%100!=0) || years%400 == 0){ returntrue; } returnfalse; } /** * 根据月份获取天数 * @param month * @param flag * @return*/publicstaticint 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", flag) + 29; } break; case "04": dayNum = month("03", flag) + 31; break; case "05": dayNum = month("04", flag) + 30; break; case "06": dayNum = month("05", flag) + 31; break; case "07": dayNum = month("06", flag) + 30; break; case "08": dayNum = month("07", flag) + 31; break; case "09": dayNum = month("08", flag) + 31; break; case "10": dayNum = month("09", flag) + 30; break; case "11": dayNum = month("10", flag) + 31; break; case "12": dayNum = month("11", flag) + 30; break; } return dayNum; } }
运行结果:
【程序15】
题目:输入三个整数x,y,z,请把这三个数由小到大输出
/** * 【程序15】 * 题目:输入三个整数x,y,z,请把这三个数由小到大输出 */ public class Subject15 { public static void main(String[] args) { minNum(7,3,5); } /** * 获取最小数 * @param a * @param b * @param c */publicstaticvoid minNum(int a,int b,int c){ int tmp = 0; int[] nums= {a,b,c}; int[] numTmp = newint[3]; for(int i=0 ; i<2;i++){ for (int j = i+1; j <= 2; j++) { if(nums[j] < nums[i]){ tmp = nums[j]; nums[j] = nums[i]; nums[i] = tmp; } } } for (int i = 0; i < nums.length ; i++) { System.out.println(nums[i]); } } }
运行结果:
【程序16】
题目:输出9*9口诀。
/** * 【程序16】 * 题目:输出9*9口诀。 */ public class Subject16 { public static void main(String[] args) { for (int i = 1; i <= 9 ; i++) { for (int j = 1; j <= i ; j++) { System.out.print(i+"*"+j+"="+i*j+" "); } System.out.println(""); } } }
运行结果:
【程序17】
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
/** * 【程序17】 * 题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半, * 又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 */ public class Subject17 { public static void main(String[] args) { System.out.println(peachNum(10)); } publicstaticint peachNum(int days){ if(days == 1){ return 1; }elseif(days > 1){ return (peachNum(days-1) + 1) * 2; } return 0; } }
运行结果:
【程序18】
题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
除了题目本身还扩展实现了,总共可以出现多少种组合
/** * 【程序18】 * 题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。 * a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。 * * 除了题目本身还扩展实现了,总共可以出现多少种组合 */ public class Subject18 { public static void main(String[] args) { List<Map> list = new ArrayList<>(); Map<Character, Character> map = new HashMap<>(); List<Character> a = new ArrayList<>(); a.add(‘a‘); a.add(‘b‘); a.add(‘c‘); List<Character> b = new ArrayList<>(); b.add(‘x‘); b.add(‘y‘); b.add(‘z‘); group(a,b,map,list); for(Map<Character, Character> maptmp:list){ boolean flag = true; for (Map.Entry<Character, Character> entry : maptmp.entrySet()) { /***将不满足条件的情况去除掉*****/if(((entry.getKey() ==‘a‘ && ‘x‘ == entry.getValue()) || ((entry.getKey() ==‘c‘ && ‘x‘ == entry.getValue()) || (entry.getKey() ==‘c‘ && ‘z‘ == entry.getValue())))){ flag = false; break; } } if(flag){ System.out.println("对决名单为:"); for (Map.Entry<Character, Character> entry : maptmp.entrySet()) { System.out.println("选手:"+entry.getKey() + " ----------VS------------ " + "选手:"+ entry.getValue()); } } } } /** * 将全部分组情况展示出来 * @param a * @param b * @param map * @param list */publicstaticvoid group(List<Character> a,List<Character> b,Map<Character, Character> map,List<Map> list){ for (int i = 0; i < a.size(); i++) { if (i == 1) { break; } for (int j = 0; j < a.size(); j++) { map.put(a.get(i), b.get(j)); //System.out.println(a.get(i) + "----" + b.get(j));if(a.size() == 1){ Map<Character, Character> mapTrue = new HashMap<>(); mapCopy(map,mapTrue); list.add(mapTrue); //System.out.println(mapTrue); } List<Character> tmp1 = new ArrayList<>(); List<Character> tmp2 = new ArrayList<>(); listCopy(a,tmp1); listCopy(b,tmp2); tmp1.remove(a.get(i)); tmp2.remove(b.get(j)); group(tmp1,tmp2,map,list); } } } /** * 将paramsMap内容复制到resultMap中 * @param paramsMap * @param resultMap */publicstaticvoid mapCopy(Map paramsMap, Map resultMap) { if (resultMap == null) resultMap = new HashMap(); if (paramsMap == null) return; Iterator it = paramsMap.entrySet().iterator(); while (it.hasNext()) { Map.Entry entry = (Map.Entry) it.next(); Object key = entry.getKey(); resultMap.put(key, paramsMap.get(key) != null ? paramsMap.get(key) : ""); } } /** * 将paramsList内容复制到resultList中 * @param paramsList * @param resultList */publicstaticvoid listCopy(List paramsList,List resultList){ for (int k = 0; k < paramsList.size(); k++) { resultList.add(paramsList.get(k)); } } }
运行结果:
【程序19】
题目:打印出如下图案(菱形)
/** * 【程序19】 * 题目:打印出如下图案(菱形) */ public class Subject19 { public static void main(String[] args) { diamond(6); } /** * 打印菱形 */publicstaticvoid diamond(int a){ for (int i = a; i > 0; i--) { for (int j = 0; j < i; j++) { System.out.print(" "); } for (int j = 0; j < a-i; j++) { System.out.print("* "); } System.out.println(""); } for (int i = 0; i < a ; i++) { for (int j = 0; j < i; j++) { System.out.print(" "); } for (int j = 0; j < a-i; j++) { System.out.print("* "); } System.out.println(""); } } }
运行结果:
【程序20】
题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。
/** * 【程序20】 * 题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。 */ public class Subject20 { public static void main(String[] args) { double sumNum = sum(20); System.out.println("前20规律数之和为:"+sumNum); } /** * 前num的数的和 * @param num */publicstaticdouble sum(int num){ if(num == 1){ return 2.0/1.0; }else{ double a = getMolecule(num); double b = num; return sum(num-1)+ a/b; } } /** * 按照规律获取分子 * @param num * @return*/publicstaticdouble getMolecule(int num){ if(num == 1){ return 2.0; }elseif(num == 2){ return 3.0; }else{ return getMolecule(num-1) + getMolecule(num-2); } } }
运行结果:
参考:https://blog.csdn.net/zzzzzzzhu/article/details/82355001
原文:https://www.cnblogs.com/jssj/p/11222351.html
内容总结
以上是互联网集市为您收集整理的《java练习题》习题集二全部内容,希望文章能够帮你解决《java练习题》习题集二所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。