java程序题目10_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+"米。

");

}

}

执行结果:

Center

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+"个");

}

}

执行结果:

48cdd05a74b4f6d679c5f338904eb31e.gif

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+"万元。");

}

}执行结果:

65a500a68ecffc787c7d8b97d477b71e.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值