买书最低价问题

设计思路

根据计算可看出以下规律:

  买6本书时,买5本一套和单买1本是最低价。

  买7本书时,买5本一套和2本一套是最低价。

  买8本书时,买两套4本的是最低价。

  买9本书时,买5本一套和4本一套是最低价。

所以当买书的数量mol5余3时是特殊情况,其余情况都有规律可循。

当余3时有两种情况。

  第一种情况是只买3本,直接输出买3本一套的价钱就OK。

  第二种情况可以是买8本、13本、18本……买书的数量先减去8计算买5本一套的价钱后再加上买两套4本的价钱即是最低价。

源程序代码

 1 #include <iostream>
 2 using namespace std;
 3 
 4 void main()
 5 {
 6     int n,a,b;
 7     double min;
 8     cout<<"请输入购买书的数量:";
 9     cin>>n;
10     a=n%5;
11     if (a==0)
12     {
13         min=(n-a)/5*(8*5)*0.75;
14     }
15     if (a==1)
16     {
17         min=(n-a)/5*(8*5)*0.75+8;
18     }
19     if (a==2)
20     {
21         min=(n-a)/5*(8*5)*0.75+15.2;
22     }
23     if (a==3)
24     {
25         if (n==3)
26         {
27             cout<<"最低价格是:21.6"<<endl;
28             exit(0);
29         }
30         min=(n-8)/5*(8*5)*0.75+51.2;
31     }
32     if (a==4)
33     {
34         min=(n-a)/5*(8*5)*0.75+25.6;
35     }
36     cout<<"最低价格是:"<<min<<endl;
37 }


运行结果截图

编程总结

解决该问题编程不是首要难题,利用数学方法该怎么计算是主要的难点,先利用数学思想考虑问题,只要思路对了,编程过程很简单。所以编程之前需要有足够的时间考虑问题!

posted @ 2015-05-09 18:21  BUANG  阅读(161)  评论(1编辑  收藏  举报