任务:

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

2         5%

3        10%

4        20%

5        25%

根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。 设计算法能够计算出读者购买一批书的最低价格。 要求将设计思想、代码实现、实现截图、个人总结以博文的形式发表。(截止日期2015-5-12晚18:00)

1.设计思想:这是一道很经典的数学题,感觉很像奥林匹克那种竞赛题,所以只要做出把数学题算出来就可以很容易的编程实现了。首先,假设要购买N本书,购买1-5本书时,是购买N本为最低价;

根据规律,可以得出N>9时  ,当N除以10所得余数为8时,最低价情况是N/10组5本书,两组4本书的组合;余数不为8时,最低价情况就是N/5组5本书,一组N%5本书的组合。然后根据这个规律把程序写出来即可。

2.源代码:

#include<iostream>
using namespace std; void main()
{
int n;
cout << "请输入购买数量:" << endl;
cin >> n; double price;
int i = n % ;
switch (i)
{
case :
price = n * * 0.75;
cout << "最低价是购买" << n / << "套整5卷书";
break;
case :
price = (n - ) * * 0.75 + ;
cout << "最低价是购买" << (n - ) / << "套整5卷书和五卷书中任意一本。" << endl;
break;
case :
price = (n - ) * * 0.75 + * * 0.95;
cout << "最低价是购买" << (n - ) / << "套整5卷书和五卷书中任意两本。" << endl;
break;
case :
price = (n - ) * * 0.75 + * * 0.8 * ;
cout << "最低价是购买" << (n - ) / << "套整5卷书和两套任意四卷" << endl;
break;
case :
price = (n - ) * * 0.75 + * * 0.8;
cout << "最低价是购买" << (n - ) / << "套整5卷书,和五卷书中任意四本。" << endl;
break;
} cout << "最低价格是:" << price << endl;
}

3.实验截图:

4.实验总结:(1)有人说写程序就是在做数学题,这道题就是一个很典型的例子,只有当把这道题做出来的时候才能变成程序.

(2)写程序很重要的一点就是要敢于尝试,如果什么也不干就妄想写出什么是不可能的。

(3)要善于寻找事物的规律,开始的时候大家都没有仔细地分析运算,每个人都在抱怨这道题有多难、多复杂,可是在真正动手之后找到规律了才焕然大悟这题是有多简单。可见实践和动手是非常重要的。

Task 7 买书最低价格问题的更多相关文章

  1. 编程之美 set 11 买书问题

    题目 书店搞促销, 同时购买多卷书时, 有机会享受优惠 2本优惠 5%, 3本 10%, 4 本 20% 5 本 25% 设计算法, 求解购买一本书的最低价格 分析 1. 第一个感觉是一次购买的越多省 ...

  2. noi 6049 买书

    题目链接: http://noi.openjudge.cn/ch0206/6049/ 6049:买书 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 小明手里有n ...

  3. 计蒜客 买书 dfs

    题目: https://www.jisuanke.com/course/2291/182236 思路: 递归解决,从第一本书开始,每本书都有两种选择: //index是book里面每本书价格的下标, ...

  4. [openjudge-动态规划]买书

    题目描述 描述 小明手里有n元钱全部用来买书,书的价格为10元,20元,50元,100元.问小明有多少种买书方案?(每种书可购买多本) 输入 一个整数 n,代表总共钱数.(0 <= n < ...

  5. 想写个小说,关于C#的,名字就叫《原Csharp》吧 (第一回 买书未成炁自生 惶惶回屋遇老翁)

    以前也有写过一些小说,但是总是写写停停的,因为忙于项目和其他事情,总是耽搁很久(真的是很久)才会继续动两笔,所以我想先在这里以随笔的方式写个关于C#异世界的小故事吧,更新随缘,也稍微能让自己轻松些. ...

  6. spring整合hibernate之买书小测试

    spring来整合hibernate就是用spring来管理hibernate的sessionFactory和让hibernate来使用spring的声明式事务. 一:加入相应的jar包. 二:写hi ...

  7. 【noi 2.6_6049】买书(DP)

    题意:有N元,有无限多本10.20.50和100元的书,问有几种购买方案. 解法:f[i]表示用 i 元的方案数.还有一个 j 循环这次买多少元的书. 注意--要先 j 循环,再 i 循环.因为要先考 ...

  8. 【活动】不用买书,不用花钱,可以免费看HTML5入门连载了

    清华大学出版社推出的<HTML 5网页开发实例详解>适合HTML 5开发初学者和前端开发工程师.本书一经上市,就获得了读者的一致好评,为感谢读者,推出本书的连载活动.   本书术新颖.与时 ...

  9. 【双十一到了,准备买书了么?】推荐几本c/c++入手的书籍

    <C和指针>c语言的经典之作,全书共18章,覆盖了数据.语句.操作符和表达式.指针.函数.数组.字符串.结构和联合等几乎所有重要的C编程话题.而且每章后面都有基础回顾已经较多例程,很适合入 ...

随机推荐

  1. 【图像处理】Schmid滤波器

    Schmid也是一种类Gabor图像滤波器,在这篇文章[1]中有详细推导和介绍. 一种更简洁的表达公式是: 当中,r为核半径,Z为归一化參数,τ和σ是比較重要的參数,在ReID提取TextFeatur ...

  2. hive介绍、安装配置、表操作基础知识适合小白学习

    1.hive概述 Apache Hive数据仓库软件有助于使用SQL读取,编写和管理驻留在分布式存储中的大型数据集.可以将结构投影到已存储的数据中.提供了命令行工具和JDBC驱动以将用户连接到Hive ...

  3. 数据分析-pandas基础入门(一)

    最近在学习python,所以了解了一下Pandas,Pandas是基于NumPy的一个开源Python库,它被广泛用于快速分析数据,以及数据清洗和准备等工作. 首先是安装numpy以及pandas, ...

  4. C语言之随机数函数( rand() )的使用方法

    文章出自个人博客https://knightyun.github.io/2018/04/25/c-rand-number,转载请申明. 在程序设计中,难免会使用到随机值函数,其原理与语法大多类似,接下 ...

  5. 时间序列分析工具箱——tibbletime

    目录 时间序列分析工具箱--tibbletime tibbletime 的用途 加载包 数据 教程:tibbletime 初始化一个 tbl_time 对象 时间序列函数 翻译自<Demo We ...

  6. 关于DE2-115 FPGA开发板无法烧写程序的解决方法

    友晶科技推出的DE2-115 FPGA开发板,有时候莫名奇妙,无法烧写或者固化程序.利用JTAG 向DE2-115开发板烧写.sof文件失败,并提示以下错误,如图1和图2所示 图1 图2 解决方法:只 ...

  7. struts2第二天——数据操作

    先介绍一下大致内容: 大致内容: 结果页面配置 action获取表单提交数据 提供获取表单数据的方式(封装数据) 表单数据封装到集合中 表达式封装和模型驱动封装比较 一.结果页面配置: result标 ...

  8. JavaScript之字符串的常用操作函数

    字符串的操作在js中非常繁琐,但也非常重要.在使用过程中,也会经常忘记,今天就对这个进行一下整理. String 对象 String 对象用于处理文本(字符串). new String(s); // ...

  9. [SDOI2018]战略游戏 圆方树,树链剖分

    [SDOI2018]战略游戏 这题是道路相遇(题解)的升级版,询问的两个点变成了\(S\)个点. LG传送门 还是先建出圆方树,考虑对于询问的\(S\)个点,答案就是圆方树上能包含这些点的最小连通块中 ...

  10. canvas高效绘制10万图形,你必须知道的高效绘制技巧

    最近的一个客户项目中,简化的需求是绘制按照行列绘制很多个圆圈.需求看起来不难,上手就可以做,写两个for循环. 原始绘制方法 首先定义了很多Circle对象,在遍历循环中调用该对象的draw方法.代码 ...