zoukankan      html  css  js  c++  java
  • 出租车费

    [f(x) = egin{cases} 10 & x le 4 \ 10 + 2(x-4) & 4 < x le 8 \ 18 + 2.4(x-8) & x ge 8 end{cases} ]

    如果(x le 4),那没什么好说的,铁定的(10)元。

    如果(4 < x le 8),那么我们显然不会下车,下车后重新打车后又是起步价(10)元,而我们不下车则是每公里(2)元。

    如果(x ge 8),那就有文章可做了,(4 sim 8)公里式每公里(2)元,而超过(8)公里后每公里(2.4)元。(实际上题目给的例子已经提示了)

    对于超过(8)公里的部分,记(remain = x - 8)

    [10+2(remain-4) le 2.4*remain ]

    解得:

    [remain ge 5 ]

    故剩下距离一旦大于(5),我们重新打个车更划算,直至剩下距离小于(5),我们选择继续乘车。

    double n;
    
    int main()
    {
        while(cin>>n, fabs(n)>eps)
        {
            double res=0;
            if(n <= 4) res=10;
            else if(n <= 8) res=10+2*(n-4);
            else
            {
                int cnt=n/8;
                int remain=ceil(n-8*cnt);
    
                res+=cnt*18;
                if(remain <= 5) res+=remain*2.4;
                else res+=10+2*(remain-4);
            }
    
            if(res == int(res)) printf("%.0f
    ",res);
            else printf("%.1f
    ",res);
        }
    
        //system("pause");
        return 0;
    }
    
  • 相关阅读:
    图床_shell命令passwd
    图床_shell命令usermod
    图床_shell命令groupadd
    图床_shell命令userdel
    图床_shell命令useradd
    图床_shell命令whereis
    图床_shell命令find
    图床_shell命令which
    图床_shell命令locate
    图床_shell命令free
  • 原文地址:https://www.cnblogs.com/fxh0707/p/14345728.html
Copyright © 2011-2022 走看看