zoukankan      html  css  js  c++  java
  • JAVA基础编程50题(10-12题)具体解释

    一、描写叙述

    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("
    总计:"+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+"万元。"); } }

    执行结果:

    奖金

  • 相关阅读:
    python中常用的数据类型之整型(int),浮点型(float), 布尔值(bool), 复数(complex)
    requests库的基础使用
    socket,urllib,urllib3,request多种方法请求网页首页
    nginx日志切割
    gitlab社区版安装
    批量修改文件编码
    lvm磁盘扩展及添加磁盘lvm分区
    函数
    集合
    数据类型练习题
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5061356.html
Copyright © 2011-2022 走看看