• Java代码题目:计算奖金和完全平方数


    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%提成,从键盘输入当月利润I,求应发放奖金总数?
    程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。

    package jiajia;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    public class zuoye1 {
    
        /**
         * @param args
         * 企业发放的奖金根据利润提成。
         * 利润(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,求应发放奖金总数?
         * main:用于输入输出
         * key_Input:输入利润数
         * bonus:计算奖金。
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            System.out.print("请输入当前利润:");
            long profit = Long.parseLong(key_Input());
            System.out.println("应发奖金:"+bonus(profit));
        }
        //从键盘输入的内容
        private static String key_Input() {
            // TODO Auto-generated method stub
            String str = null;
            BufferedReader bufln = new BufferedReader(new InputStreamReader(System.in));
            try{
                str=bufln.readLine();
            }catch(IOException e){
                e.printStackTrace();
            }finally{
                try{
                    bufln.close();
                }catch(IOException e){
                    e.printStackTrace();
                }
            }
            return str;
        }
        private static long bonus(long profit) {
            // TODO Auto-generated method stub
            long prize = 0;
            long profit_sub = profit;
            if(profit>1000000){
                profit = profit_sub-1000000;
                profit_sub = 1000000;
                prize += profit*0.01;
            }
            if(profit>600000){
                profit=profit_sub-600000;
                profit_sub = 600000;
                prize += profit*0.015;
            }
            if(profit>400000){
                profit = profit_sub-400000;
                profit_sub = 400000;
                prize += profit*0.03;
            }
            if(profit>200000){
                profit = profit_sub-200000;
                profit_sub = 200000;
                prize += prize*0.05;
            }
            if(profit>100000){
                profit = profit_sub-100000;
                profit_sub = 100000;
                prize += profit*0.075;
            }
            prize += profit_sub*0.1;
            return prize;
        }
    }
    

    这里写图片描述
    2.完全平方数
    题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
    程序分析:
    假设该数为 x。
    1、则:x + 100 = n2, x + 100 + 168 = m2
    2、计算等式:m2 - n2 = (m + n)(m - n) = 168
    3、设置: m + n = i,m - n = j,i * j =168,i和 j 至少一个是偶数
    4、可得: m = (i + j) / 2, n = (i - j) / 2,i和 j 要么都是偶数,要么都是奇数。
    5、从 3 和 4 推导可知道,i与 j 均是大于等于 2 的偶数。
    6、由于i * j = 168, j>=2,则 1

    package jiajia;
    
    public class zuoye {
    
        /**
         * @param args
         * 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
         * x + 100 = n2, x + 100 + 168 = m2
         * m2 - n2 = (m + n)(m - n) = 168
         * m + n = i,m - n = j,i * j =168,i和 j 至少一个是偶数
         * m = (i + j) / 2, n = (i - j) / 2,i和 j 要么都是偶数,要么都是奇数。
         * i与 j 均是大于等于 2 的偶数
         * i * j = 168, j>=2,则 1 <i< 168 / 2 + 1。
         * 接下来将i的所有数字循环计算即可
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
    //      double a,b;
    //      for(int i=1;i<100000;i++){
    //          if(Math.sqrt((long)(i+100)%1==0) && Math.sqrt((long)(i+100+168))%1==0)
    //          {
    //              System.out.println(i);
    //          }
    //      }
    //  }
            int x,y;
            int z;
            for(int i=1;i<100000;i++){
                x=(int) Math.sqrt(i+100);
                y=(int) Math.sqrt(i+268);
                if(x*x==i+100 && y*y==i+268){
                    System.out.println(i);
                }
            }
        }
    }
    

    这里写图片描述
    关注我,每天都有优质技术文章推送。工作、学习累了的时候放松一下自己。
    本文如果对你有帮助请点 。你的是对我最大的肯定!!!

    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!
  • 相关阅读:
    memcached(三)--参数
    memcached(二)--安装
    memcached(一)--前言
    如何高性能的给UIImageView加个圆角?(不准说layer.cornerRadius!)
    ios打包ipa的四种实用方法
    怎么调试EXC_BAD_ACCESS错误
    iOS应用性能调优的25个建议和技巧
    3D Touch
    segment
    低版本Xcode 出现could not find developer disk image问题
  • 原文地址:https://www.cnblogs.com/dashucoding/p/11932783.html
Copyright © 2020-2023  润新知