java经典算法-day8

举报
喵手 发表于 2024/09/30 22:43:15 2024/09/30
【摘要】 哈喽,各位小伙伴们好,我是喵手。一、前言正值金三银四好时节,又到了刷题月。xdm,有空的欢迎一起呀。无论你是挤公交还是坐地铁时间,随时随地皆可刷...你可以不用实操,你只需要看题思考,完后有空coding就好呀。接下来我要开启我的刷题之旅啦,喜欢的小伙伴欢迎点赞关注哦。二、题目描述:题目1:       企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10...


哈喽,各位小伙伴们好,我是喵手。

一、前言

正值金三银四好时节,又到了刷题月。xdm,有空的欢迎一起呀。无论你是挤公交还是坐地铁时间,随时随地皆可刷...你可以不用实操,你只需要看题思考,完后有空coding就好呀。接下来我要开启我的刷题之旅啦,喜欢的小伙伴欢迎点赞关注哦。

二、题目描述:

题目1:

       企业发放的奖金根据利润提成。利润(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%提成,从键盘输入当月利润,求应发放奖金总数sum?

题目2:

       一个整数,它加上100后是一个完全平方数,加上168又是一个完全平方数,请问该数是多少?

三、思路分析:

题1分析:

       看到这题,也很像写数学题,对吧,高中数学题,算什么最大利润,但是这里是简单进行了梯度计算,用代码实现逻辑即可。也很简单,我就直接上代码了啊。

题2分析:

       对于这题,首先教你们的就是利用for循环嵌套,既然没有定义范围,那就我们自己定义一个范围,找出在这个范围内中符合题意的数字即可,所以毫无悬念,直接for循环走起。

四、算法实现:

题1AC代码:

/**
 * 计算发放奖金总数
 */
public static double lr(double lirun) {
    //记录应发放的奖金
    double sum = 0;
    if (lirun <= 10) {
        sum = lirun * 0.1;
    } else if (lirun <= 20) {
        sum = 10 * 0.1 + (lirun - 10) * 0.075;
    } else if (lirun <= 40) {
        sum = 10 * 0.1 + 10 * 0.075 + (lirun - 20) * 0.05;
    } else if (lirun <= 60) {
        sum = 10 * 0.1 + 10 * 0.075 + 10 * 0.05 + (lirun - 40) * 0.03;
    } else if (lirun <= 100) {
        sum = 10 * 0.1 + 10 * 0.075 + 10 * 0.05 + 10 * 0.03 + (lirun - 60) * 0.015;
    } else {
        sum = 10 * 0.1 + 10 * 0.075 + 10 * 0.05 + 10 * 0.03 + 10 * 0.015 + (lirun - 100) * 0.01;
    }
    return sum;
}

题2AC代码:

我们先定义一个从1-10000的for循环体,接着就是将num1、num2进行数据类型定义,最后只需要判断,两值是否为整数即可。

/**
 * 在1-100000内,它加上100后是一个完全平方数,加上168又是一个完全平方数
 */
public static void getNum() {

    double num1, num2;
    for (int i = 1; i <= 10000; i++) {
        num1 = Math.sqrt((i + 100));
        num2 = Math.sqrt((i + 100 + 168));

        //判断num1、num2是否为整数。
        if (num1 == (int) num1 && num2 == (int) num2) {
            System.out.println(i);
        }
    }
}

五、总结:

综上,第一道题毫无悬念,就是一道存数学判断题,只需要将不同的判断条件枚举出来,然后不同的枚举条件返回不同的计算公式。第二道就是读题写逻辑,很简单啊,单纯就是通过代码来实现求未知数的题。

如果你有更好的解题思路或者想法,欢迎评论区留言告诉我哦,喵手感激不尽。

六、文末:

好啦,以上就是我这期的全部内容,如果有任何疑问,欢迎下方留言哦,咱们下期见。

... ...
学习不分先后,知识不分多少;事无巨细,当以虚心求教;三人行,必有我师焉!!!

wished for you successed !!!

---------------------------------------------------------------------

⭐️若喜欢我,就请关注我叭。

⭐️若对您有用,就请点赞叭。

⭐️若有疑问,就请评论留言告诉我叭。

---------------------------------------------------------------------

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。