?
Java總結(jié):https://www.cnblogs.com/jssj/p/11146205.html
【程序11】
題目:有1、2、3、4個(gè)數(shù)字,能組成多少個(gè)互不相同且無(wú)重復(fù)數(shù)字的三位數(shù)?都是多少?
/*** 【程序11】* 題目:有1、2、3、4個(gè)數(shù)字,能組成多少個(gè)互不相同且無(wú)重復(fù)數(shù)字的三位數(shù)?都是多少?*/
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可以組成的三位數(shù):"+i+j+
k);}}}}
} 運(yùn)行結(jié)果:
。。。。。。。
【程序12】
題目:企業(yè)發(fā)放的獎(jiǎng)金根據(jù)利潤(rùn)提成。利潤(rùn)(I)低于或等于10萬(wàn)元時(shí),獎(jiǎng)金可提10%;利潤(rùn)高于10萬(wàn)元,低于20萬(wàn)元時(shí),低于10萬(wàn)元的部分按10%提成,高于10萬(wàn)元的部分,可可提成7.5%;20萬(wàn)到40萬(wàn)之間時(shí),高于20萬(wàn)元的部分,可提成5%;40萬(wàn)到60萬(wàn)之間時(shí)高于40萬(wàn)元的部分,可提成3%;60萬(wàn)到100萬(wàn)之間時(shí),高于60萬(wàn)元的部分,可提成1.5%,高于100萬(wàn)元時(shí),超過(guò)100萬(wàn)元的部分按1%提成,從鍵盤輸入當(dāng)月利潤(rùn)I,求應(yīng)發(fā)放獎(jiǎng)金總數(shù)?
/*** 【程序12】* 題目:企業(yè)發(fā)放的獎(jiǎng)金根據(jù)利潤(rùn)提成。利潤(rùn)(I)低于或等于10萬(wàn)元時(shí),獎(jiǎng)金可提10%;利潤(rùn)高于10萬(wàn)元,低于20萬(wàn)元時(shí),* 低于10萬(wàn)元的部分按10%提成,高于10萬(wàn)元的部分,可可提成7.5%;20萬(wàn)到40萬(wàn)之間時(shí),高于20萬(wàn)元的部分,可提成5%;* 40萬(wàn)到60萬(wàn)之間時(shí)高于40萬(wàn)元的部分,可提成3%;60萬(wàn)到100萬(wàn)之間時(shí),高于60萬(wàn)元的部分,可提成1.5%,* 高于100萬(wàn)元時(shí),超過(guò)100萬(wàn)元的部分按1%提成,從鍵盤輸入當(dāng)月利潤(rùn)I,求應(yīng)發(fā)放獎(jiǎng)金總數(shù)?*/
public class Subject12 {public static void main(String[] args) {System.out.println("請(qǐng)輸入您的業(yè)績(jī):"
);Scanner scanner =
new Scanner(System.in);double profit=
scanner.nextInt();System.out.println("您得到的提成為:"+
premium(profit));}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;}
} 運(yùn)行結(jié)果:
【程序13】
題目:一個(gè)整數(shù),它加上100后是一個(gè)完全平方數(shù),再加上168又是一個(gè)完全平方數(shù),請(qǐng)問(wèn)該數(shù)是多少?
?
/*** 【程序13】* 題目:一個(gè)整數(shù),它加上100后是一個(gè)完全平方數(shù),再加上168又是一個(gè)完全平方數(shù),請(qǐng)問(wèn)該數(shù)是多少?*/
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("一個(gè)整數(shù),它加上100后是一個(gè)完全平方數(shù),再加上168又是一個(gè)完全平方數(shù),則該數(shù)為:"+(z*z - 168-100
));break;}else{i++
;}}}
} 運(yùn)行結(jié)果:
【程序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"
);}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+"天"
);}/*** 根據(jù)年份判斷閏年還是普通年* @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;}/*** 根據(jù)月份獲取天數(shù)* @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", 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;}
} 運(yùn)行結(jié)果:
【程序15】
題目:輸入三個(gè)整數(shù)x,y,z,請(qǐng)把這三個(gè)數(shù)由小到大輸出
/*** 【程序15】* 題目:輸入三個(gè)整數(shù)x,y,z,請(qǐng)把這三個(gè)數(shù)由小到大輸出*/
public class Subject15 {public static void main(String[] args) {minNum(7,3,5
);}/*** 獲取最小數(shù)* @param a* @param b* @param c*/public static void minNum(
int a,
int b,
int c){int tmp = 0
;int[] nums=
{a,b,c};int[] numTmp =
new int[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]);}}
} 運(yùn)行結(jié)果:
【程序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(""
);}}
} 運(yùn)行結(jié)果:
【程序17】
題目:猴子吃桃問(wèn)題:猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,還不癮,又多吃了一個(gè)第二天早上又將剩下的桃子吃掉一半,又多吃了一個(gè)。以后每天早上都吃了前一天剩下的一半零一個(gè)。到第10天早上想再吃時(shí),見(jiàn)只剩下一個(gè)桃子了。求第一天共摘了多少。
/*** 【程序17】* 題目:猴子吃桃問(wèn)題:猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,還不癮,又多吃了一個(gè)第二天早上又將剩下的桃子吃掉一半,* 又多吃了一個(gè)。以后每天早上都吃了前一天剩下的一半零一個(gè)。到第10天早上想再吃時(shí),見(jiàn)只剩下一個(gè)桃子了。求第一天共摘了多少。*/
public class Subject17 {public static void main(String[] args) {System.out.println(peachNum(10
));}public static int peachNum(
int days){if(days == 1
){return 1
;}else if(days > 1
){return (peachNum(days-1) + 1) * 2
;}return 0
;}
} 運(yùn)行結(jié)果:
【程序18】
題目:兩個(gè)乒乓球隊(duì)進(jìn)行比賽,各出三人。甲隊(duì)為a,b,c三人,乙隊(duì)為x,y,z三人。已抽簽決定比賽名單。有人向隊(duì)員打聽(tīng)比賽的名單。a說(shuō)他不和x比,c說(shuō)他不和x,z比,請(qǐng)編程序找出三隊(duì)賽手的名單。
除了題目本身還擴(kuò)展實(shí)現(xiàn)了,總共可以出現(xiàn)多少種組合
/*** 【程序18】* 題目:兩個(gè)乒乓球隊(duì)進(jìn)行比賽,各出三人。甲隊(duì)為a,b,c三人,乙隊(duì)為x,y,z三人。已抽簽決定比賽名單。有人向隊(duì)員打聽(tīng)比賽的名單。* a說(shuō)他不和x比,c說(shuō)他不和x,z比,請(qǐng)編程序找出三隊(duì)賽手的名單。** 除了題目本身還擴(kuò)展實(shí)現(xiàn)了,總共可以出現(xiàn)多少種組合*/
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("對(duì)決名單為:"
);for (Map.Entry<Character, Character>
entry : maptmp.entrySet()) {System.out.println("選手:"+entry.getKey() + " ----------VS------------ " + "選手:"+
entry.getValue());}}}}/*** 將全部分組情況展示出來(lái)* @param a* @param b* @param map* @param list*/public static void 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內(nèi)容復(fù)制到resultMap中* @param paramsMap* @param resultMap*/public static void 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內(nèi)容復(fù)制到resultList中* @param paramsList* @param resultList*/public static void listCopy(List paramsList,List resultList){for (
int k = 0; k < paramsList.size(); k++
) {resultList.add(paramsList.get(k));}}
} 運(yùn)行結(jié)果:
【程序19】
題目:打印出如下圖案(菱形)
/*** 【程序19】* 題目:打印出如下圖案(菱形)*/
public class Subject19 {public static void main(String[] args) {diamond(6
);}/*** 打印菱形*/public static void 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(""
);}}
} 運(yùn)行結(jié)果:
【程序20】
題目:有一分?jǐn)?shù)序列:2/1,3/2,5/3,8/5,13/8,21/13…求出這個(gè)數(shù)列的前20項(xiàng)之和。
/*** 【程序20】* 題目:有一分?jǐn)?shù)序列:2/1,3/2,5/3,8/5,13/8,21/13…求出這個(gè)數(shù)列的前20項(xiàng)之和。*/
public class Subject20 {public static void main(String[] args) {double sumNum = sum(20
);System.out.println("前20規(guī)律數(shù)之和為:"+
sumNum);}/*** 前num的數(shù)的和* @param num*/public static double 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;}}/*** 按照規(guī)律獲取分子* @param num* @return*/public static double getMolecule(
int num){if(num == 1
){return 2.0
;}else if(num == 2
){return 3.0
;}else{return getMolecule(num-1) + getMolecule(num-2
);}}
} 運(yùn)行結(jié)果:
參考:https://blog.csdn.net/zzzzzzzhu/article/details/82355001
轉(zhuǎn)載于:https://www.cnblogs.com/jssj/p/11222351.html
總結(jié)
以上是生活随笔為你收集整理的《java练习题》习题集二的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。