zoukankan      html  css  js  c++  java
  • Java自学

    题目要求:

    书店针对《哈利波特》系列书籍进行促销活动,一共5卷,用编号0、1、2、3、4表示,单独一卷售价8元, 具体折扣如下所示:

                                   本数                  折扣

                                       2                       5%

                                       3                       10%

                                       4                       20%

                                       5                       25%

    根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。

    设计算法能够计算出读者购买一批书的最低价格。

    要求将设计思想、代码实现、实现截图、个人总结以博文的形式发表。

    1设计思路:

    0,1,2,3,4共五本。一本八块钱

    本数折扣

    2   5%

    3   10%

    4   20%

    5  25%

       

    本,价钱           原价         降价

    1    8             8           

    2    16-16*%5 =15.2     16      0.8

    3    3*8-3*8*%10  =21.6  24    2.4

    4    32-32*%20 =25.8    32      6.4

    5    40-40*%25 =30     40       10

    6本 3+3  1+5  2+4  

    43.2  38   41

    7本  1+6  2+5   3+4

    46     45.2   47.4

    8本 1+7  2+6  3+5    4+4

    53.2 53.2   51.6      51.6

    9本  1+8   2+7    3+6    4+5 

          59.6   60.4   59.6   55.8

    10 本 5+5 

    通过以上对购买1到10本的购买分析,可以分别得到1到10本的最佳购买方式。 大多时候选择五本书为一个整体来购买。余下的就随机购买五本书中不相同的卷就可以价格最低。但在数量为8的情况有所不同,这时候选择4+4组合价格更低。

    当购买数量大于十时,采用除以10取余的方法,余数部分使用前面分析的购买方式,其余使用5本整体的购买方式。注意在余数为8时的不同。

    2源程序代码:

    复制代码
    #include<iostream>
    using namespace std;
     
    void  main()
    {
        int Book=0;
        double money;
        double a[5]={0,0.05,0.1,0.2,0.25};
     
        while(Book<1)
        {
            cout<<"请输入你想要买的书的本数:";
            cin>>Book;
        }
        if(Book%10==8)
        {
            money=(Book/10)*10*8*(1-a[4])+(Book%10)*8*(1-a[3]);
        }
        else
        {
            money=(Book/5)*5*8*(1-a[4])+(Book%5)*8*(1-a[Book%5-1]);
        }
     
        cout<<"读者购买这批书的最低价格为:"<<money<<endl;
        cout<<"购买方式如下:"<<endl;
        if(Book%10==8)
        {
            cout<<"五本中有四本书每本买"<< (Book/10)*2+2<<"本,";
            cout<<"剩下的一本买"<< (Book/10)*2<<"本,"<<endl;
        }
        else
        {
            if(Book%5!=0)
            {
                cout<<"五本中有"<<Book%5<<"本书每本买"<< Book/5+1<<"本,";
                cout<<"剩下的"<<5-Book%5<<"本每本买"<< Book/5<<"本,"<<endl;
            }
            else
            {
                cout<<"五本书每本买"<< Book/5<<"本 "<<endl;
            }
             
        }
        
    }
    复制代码

    5.个人总结:

    在遇到问题的时候,要是没有思路就自己多列举一下,从中找到规律。

  • 相关阅读:
    C++学习笔记----2.4 C++对象的内存模型
    C++学习笔记(2)---2.5 C++函数编译原理和成员函数的实现
    C++学习笔记(1)-构造函数与析构函数
    学习笔记(5)---数学运算
    学习笔记(4)---协方差和特征向量的意义
    学习笔记(3)---安装SVM问题及解决方法
    学习笔记(2)---Matlab 图像处理相关函数命令大全
    数据增删查改操作总结
    表操作总结
    touch命令修改时间
  • 原文地址:https://www.cnblogs.com/20193898liufa/p/14161858.html
Copyright © 2011-2022 走看看