java中基础算法题,TestBall.java、TestTN.java和 MoneyAward.java实例分享

众所周知,java中的内容很多都是与实际生活息息相关的,这也是为什么java编程语言广受欢迎的原因之一。今天就来为大家展示一些基础算法题,一起来了解一下吧。

一、TestBall.java

题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?代码展示如下:

package cn.edu.hit;
/**
 * 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;
 * 再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
 */
public class testBall
{
    public static void main(String[] args)
    {
        double a = 100;
        double sum = 100;
        for (int i = 2; i <= 10; i++)
        {
            a = a * 0.5;
            sum += a * 2;
        }
        System.out.println("a=" + a);
        System.out.println("sum=" + sum);
    }
}

二、TestTN.java

题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。代码展示如下:

package cn.edu.hit;
/**
 * 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
 * 组成所有的排列后再去 掉不满足条件的排列。
 * 
 * @author tonylp
 */
public class testTN
{
    public static void main(String[] args)
    {
        int a = 0;
        int b = 0;
        int c = 0;
        int num = 1;
        for (a = 1; a < 5; a++)
        {
            for (b = 1; b < 5; b++)
            {
                for (c = 1; c < 5; c++)
                {
                    if (a != b && a != c && b != c)
                    {
                        System.out.println("NO." + num + ":" + a + "" + b + "" +
                            c);
                        num++;
                    }
                }
            }
        }
    }
}

三、MoneyAward.java

题目:企业发放的奖金根据利润提成。利润(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.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。代码展示如下:

package cn.edu.hit;
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,求应发放奖金总数?
 * 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。
 * 
 * @author tonylp
 */
public class moneyAward
{
    public static void main(String[] args)
    {
        double rate1 = 0.1, rate2 = 0.075, rate3 = 0.05, rate4 = 0.03, rate5 = 0.014, rate6 = 0.01;
        long reward = 0;
        System.out.println("请输入利润:");
        Scanner sc = new Scanner(System.in);
        long money = sc.nextLong();
        if (money >= 0 && money <= 100000)
        {
            reward = (long)(money * rate1);
        }
        else if (money <= 200000)
        {
            reward = (long)(100000 * rate1 + (money - 100000) * rate2);
        }
        else if (money <= 400000)
        {
            reward = (long)(100000 * rate1 + 100000 * rate2 + (money - 200000) * rate3);
        }
        else if (money <= 600000)
        {
            reward = (long)(10000 * rate1 + 100000 * rate2 + 200000 * rate3 +
                (money - 400000) * rate4);
        }
        else if (money <= 1000000)
        {
            reward = (long)(10000 * rate1 + 100000 * rate2 + 200000 * rate3 + 200000 *
                rate4 + (money - 6000000) * rate5);
        }
        else
        {
            reward = (long)(10000 * rate1 + 100000 * rate2 + 200000 * rate3 + 200000 *
                rate4 + 400000 * rate5 + (money - 1000000) * rate6);
        }
        System.out.println("奖金为:" + reward);
    }
}

以上就是关于java中基础算法题,TestBall.java、TestTN.java和 MoneyAward.java的实例分享了。如果你对java知识感兴趣,想要了解更多java入门知识,敬请关注奇Q工具网。

推荐阅读:

java基础算法题,四个实例分享

java基础算法题,兔子问题和水仙花束

java学习书籍推荐,基础篇