哈利波特课后练习

题目要求:

书店针对《哈利波特》系列书籍进行促销活动,一共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;
        }

    }

}

3 结果截图:

网速不好明日再发

4个人总结:

时间: 2024-10-13 12:44:37

哈利波特课后练习的相关文章

问题 1018: C语言程序设计教程(第三版)课后习题6.8

/******************************************************************** @file Main.cpp @date 2017-05-12 @author Zoro_Tiger @brief 问题 1018: C语言程序设计教程(第三版)课后习题6.8 http://www.dotcpp.com/oj/problem1018.html *************************************************

问题 1041: C语言程序设计教程(第三版)课后习题9.8

/******************************************************************** @file Main.cpp @date 2017-05-28 22:02:55 @author Zoro_Tiger @brief 问题 1041: C语言程序设计教程(第三版)课后习题9.8 http://www.dotcpp.com/oj/problem1041.html ****************************************

问题 1040: C语言程序设计教程(第三版)课后习题9.6

/******************************************************************** @file Main.cpp @date 2017-05-28 21:57:02 @author Zoro_Tiger @brief 问题 1040: C语言程序设计教程(第三版)课后习题9.6 http://www.dotcpp.com/oj/problem1040.html ****************************************

问题 1042: C语言程序设计教程(第三版)课后习题9.10

/******************************************************************** @file Main.cpp @date 2017-05-28 22:10:10 @author Zoro_Tiger @brief 问题 1042: C语言程序设计教程(第三版)课后习题9.10 http://www.dotcpp.com/oj/problem1042.html ***************************************

问题 1023: C语言程序设计教程(第三版)课后习题7.2

/******************************************************************** @file Main.cpp @date 2017-05-20 22:05:39 @author Zoro_Tiger @brief 问题 1023: C语言程序设计教程(第三版)课后习题7.2 http://www.dotcpp.com/oj/problem1023.html ****************************************

问题 1008: C语言程序设计教程(第三版)课后习题5.6

/******************************************************************** @file Main.cpp @date 2017-5-8 @author Zoro_Tiger @brief 问题 1008: C语言程序设计教程(第三版)课后习题5.6 http://www.dotcpp.com/oj/problem1008.html ***************************************************

问题 1006: C语言程序设计教程(第三版)课后习题5.4

/******************************************************************** @file Main.cpp @date 2017-05-07 @author Zoro_Tiger @brief 问题 1006: C语言程序设计教程(第三版)课后习题5.4 http://www.dotcpp.com/oj/problem1006.html *************************************************

课后作业

课后作业 "类型转换"知识点考核-2 程序源代码: 1 class Mammal{} 2 class Dog extends Mammal {} 3 class Cat extends Mammal{} 4   5 public class TestCast 6 { 7      public static void main(String args[]) 8      { 9             Mammal m; 10             Dog d=new Dog();

第四讲课后题

本讲主要学习了静态类的使用方法: 1.使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数.请写一个类,在任何时候都可以向它查询"你已经创建了多少个对象?". 代码: 1 package 课后四讲; 2 3 import javax.swing.JOptionPane; 4 5 class Example 6 { 7 static int value=0; 8 public Example() 9 { 10 value++; 11 12 } 13 } 14 public cl