标签:
一、设计思想
买书可以分为不同的情况,五本一下肯定是越多越便宜,五本以上,就要搭配着买。比如买6本,就有5+1,4+2,3+3三种买法。
要买6,7,9,本时,都是5+x是最合适的买法,只有买8本的时候,是4+4最合适。
所以就把买书的方案分成小块,用要买的本数除以10取余数,因为10的整数倍肯定是按五本买最合适,剩下的1-9本,除了8之外,其他的都是5+x模式,再把两部分的钱加起来。就是总钱数。(未拿数学证明,不严谨检讨!)
二、源代码
#include<iostream>
using namespace std;
void main()
{
int num;
double mon1,mon2,all;
cout<<"请输入要买的本数:"<<endl;
cin>>num;
int n1,n2;
n1=num/10;
n2=num%10;
mon1=40*0.75*2*n1;
switch(n2)
{
case 1:{mon2=1*8;break;}
case 2:{mon2=2*8*0.95;break;}
case 3:{mon2=3*8*0.9;break;}
case 4:{mon2=4*8*0.8;break;}
case 5:{mon2=5*8*0.75;break;}
case 6:{mon2=5*8*0.75+8;break;}
case 7:{mon2=5*8*0.75+8*2*0.95;break;}
case 8:{mon2=4*8*0.8*2;break;}
case 9:{mon2=5*8*0.75+4*8*0.8;break;}
case 0:{mon2=0;}
}
all=mon1+mon2;
cout<<"需要的钱数为:"<<all<<endl;
}
三、 截图

四、总结
这个实验应该加入一步数学证明来着,不证明怎么得出来结论,在此检讨。
标签:
原文地址:http://www.cnblogs.com/licongzhuo/p/4529556.html