JAVA基礎編程50題(10-12題)詳解

來源:互聯網
上載者:User

標籤:java原始碼   球下落彈起問題   不同數字排列   不同階層獎金計算   編程   

一、描述

1、一球從m米高度自由落下,每次落地後反跳回原高度的一半;再落下,求它在 第n次落地時,共經過多少米?第10次反彈多高?

2、有1、2、3、4個數字,能組成多少個互不相同且無重複數位三位元?都是多少?

程式分析:可填在百位、十位、個位的數字都是1、2、3、4。但是必須滿足每一位上的數字各不相同,根據排列組合原理總共有4*3*2=24種。

3、企業發放的獎金根據利潤提成。利潤(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,求應發放獎金總數? 

程式分析:根據輸入的利潤判斷該利潤所屬的提成範圍,計算結果。


二、原始碼

1、程式1

package tong.yue.hong;import java.util.Scanner;/** * 一球從m米高度自由落下,每次落地後反跳回原高度的一半;再落下,求它在 第n次落地時,共經過多少米?第10次反彈多高? * @author tong * */public class BallHeight {public static void main(String[] args) {Scanner scan = new Scanner(System.in);System.out.print("請輸入小球落地時的高度:");double height = scan.nextDouble();if (height<0) {System.out.print("輸入資料有誤,請重新輸入小球落地時的高度:");height = scan.nextDouble();}System.out.print("請輸入小球落地的次數:");int times = scan.nextInt();if (times<0) {System.out.print("輸入資料有誤,請重新輸入小球落地的次數:");times = scan.nextInt();}scan.close();ballDistance(height,times);}private static void ballDistance(double height, int times) {System.out.println("start height:"+height);//開始落下之前的高度,以後每次彈起和落下記為一次double sum = height;for(int i=1;i<=times;i++){height /=2.0;System.out.println("第"+i+"次,球的彈起高度為:"+height);//每次落地後反跳回原高度的一半,經過的路程為原高度的一半乘以2,因為有彈起和落下sum +=2*height;}System.out.println("第"+times+"次,落地後經過的總距離為:"+sum+"米。");}}

運行結果:



2、程式2

package tong.yue.hong;/** * 有1、2、3、4個數字,能組成多少個互不相同且無重複數位三位元?都是多少?程式分析:可填在百位、十位、個位的數字都是1、2、3、4。但是必須滿足每一位上的數字各不相同,根據排列組合原理總共有4*3*2=24種。 * @author tong * */public class PailieZuhe {public static void main(String[] args) {int count = 0;for (int i = 1; i <= 4; i++) {for (int j = 1; j <= 4; j++) {//個位和十位不能相同if (j==i) {continue;}for (int k = 1; k <= 4; k++) {//個位和百位,十位和百位不能相同if (i!=k&&j!=k) {int num = i+j*10+k*100;System.out.print(num+" ");count++;if (count%10==0) {System.out.println();}}}}}System.out.println("\n總計:"+count+"個");}}

運行結果:



3、程式3

package tong.yue.hong;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%提成 * 從鍵盤輸入當月利潤I,求應發放獎金總數? 程式分析:根據輸入的利潤判斷該利潤所屬的提成範圍,計算結果 * @author tong * */public class Salary {public static void main(String[] args) {System.out.println("請輸入當月利潤,單位為萬元:");Scanner scanner = new Scanner(System.in);double I = scanner.nextDouble();while (I<0) {System.out.println("輸入資料有誤,請重新輸入當月利潤,單位為萬元:");I = scanner.nextDouble();}scanner.close();computeBonus(I);}private static void computeBonus(double i) {double bonus = 0;//利潤(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%提成if (i<=10) {bonus = i*0.1;}else if (i<=20) {bonus = 10*0.1+(i-10)*0.075;} else if (i<=40) {bonus = 10*0.1+10*0.075+(i-20)*0.05;} else if (i<=60) {bonus = 10*0.1+10*0.075+20*0.05+(i-40)*0.03;}else if (i<=100) {bonus = 10*0.1+10*0.075+20*0.05+20*0.03+(i-60)*0.015;}else {bonus = 10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(i-100)*0.01;}System.out.println("您本月利潤為:"+i+"萬元,所得獎金為:"+bonus+"萬元。");}}
運行結果:


JAVA基礎編程50題(10-12題)詳解

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.