标签:
一、题目要求
本数 折扣
2 5%
3 10%
4 20%
5 25%
1 #include<iostream.h> 2 3 void show(int x , double &sum) 4 { 5 if(x==6) 6 { 7 cout<<"5本一组,1本一组来购买"; 8 sum=sum+5*8*0.75+8; 9 } 10 if(x==7) 11 { 12 cout<<"5本一组,2本一组来购买"; 13 sum=sum+5*8*0.75+2*8*0.95; 14 } 15 if(x==8) 16 { 17 cout<<"4本一组,4本一组来购买"; 18 sum=sum+8*8*0.8; 19 } 20 if(x==9) 21 { 22 cout<<"5本一组,4本一组来购买"; 23 sum=sum+5*8*0.75+4*8*0.8; 24 } 25 } 26 27 void main() 28 { 29 cout<<"请输入要购买的本数:"<<endl; 30 int num,a,b,i; 31 double sum=0; 32 cin>>num; 33 cout<<"最优惠的方案是:"<<endl; 34 a=num%10; 35 if(a>5) 36 { 37 b=num/5; 38 for(i=1;i<=b;i++) 39 { 40 cout<<"5组一本,"; 41 } 42 sum=sum+b*8*5*0.75; 43 show(a,sum); 44 } 45 else if(a<5&&a>0) 46 { 47 a=a+5; 48 b=num/5-1; 49 for(i=1;i<=b;i++) 50 { 51 cout<<"5组一本,"; 52 } 53 sum=sum+b*8*5*0.75; 54 show(a,sum); 55 } 56 else 57 { 58 b=num/5; 59 for(i=1;i<=b;i++) 60 { 61 cout<<"5组一本,"; 62 } 63 sum=sum+b*8*5*0.75; 64 } 65 cout<<endl<<"一共花费"<<sum<<"元"<<endl; 66 }
四、运行结果截图
五、总结
这次题目是对设计好的算法的练习,一开始感觉用程序实现可以考虑遍历,枚举所有情况再找最小值,不会漏掉情况。但发现这样比较繁琐,而且在算法实现上最为耗时,不是最简洁的。然后通过计算购买6-9本情况发现规律,设计出了算法。
标签:
原文地址:http://www.cnblogs.com/dr73/p/4429317.html