书店售书最低价格问题
生活随笔
收集整理的這篇文章主要介紹了
书店售书最低价格问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
書店針對《哈利波特》系列書籍進行促銷活動,一共5卷,用編號0、1、2、3、4表示,單獨一卷售價8元, 具體折扣如下所示:
?????????????????????????????? 本數????????????????? 折扣
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2?????????????????????? 5%
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?3?????????????????????? 10%
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?4?????????????????????? 20%
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?5?????????????????????? 25%
根據購買的卷數以及本數,會對應不同折扣規則情況。單數一本書只會對應一個折扣規則, 例如購買了兩本卷1,一本卷2,則可以享受5%的折扣,另外一本卷一則不享受優惠。 設計算法能夠計算出讀者購買一批書的最低價格。 1》設計思路: 首先在自己計算一下1到10本的最低價格: 其中1到5本的時候,都是按相應的折扣進行購買,就是最低價格 而6到10本就需要自己算一下了,其結果如下: 6本:5+1方案價格最低 7本:5+2方案價格最低 8本:4+4方案價格最低 9本:5+4方案價格最低 10本:5+5方案價格最低 所以10本以后就需要看除以5的余數就可以了,可以整除的那部分按5本折扣算,不能整除的按不能整除的有幾本,就按幾本折扣算, 其中當余數為3時,情況較為特殊,因為當有8本是4+4方案最優,應該是減去8本,那8本按4+4計算,其余的按5本的折扣計算 當然只有3本時,就輸出3本書的情況。 2》源代碼: 1 import java.util.*; 2 public class MinPrice { 3 public static void main(String args[]){ 4 Scanner sc =new Scanner(System.in); 5 6 double money=0;//總錢數 7 int biaoshi =1; //是否想繼續的標識 8 while(biaoshi>0) 9 { 10 System.out.println("請輸入你想購書的數量:"); 11 int num = sc.nextInt(); 12 13 int yushu=num%5; 14 switch(yushu) 15 { 16 case 0: 17 { 18 money=num*8*0.75; 19 break; 20 } 21 case 1: 22 { 23 money=(num-1)*8*0.75; 24 break; 25 } 26 case 2: 27 { 28 money=(num-2)*8*0.75+8*2*0.95; 29 break; 30 } 31 case 3: 32 { 33 if(num==3) 34 { 35 money=num*8*0.9; 36 break; 37 } 38 else 39 { 40 money=(num-8)*8*0.75+2*8*4*0.85; 41 break; 42 } 43 44 } 45 case 4: 46 { 47 money=(num-4)*8*0.75+8*4*0.8; 48 break; 49 } 50 } 51 System.out.println("書的最低價格為:"+money); 52 System.out.println("您是否繼續,繼續選1否則選0"); 53 biaoshi =sc.nextInt(); 54 } 55 56 } 57 }?
結果截圖:
?
總結:要注意總結規律,還要注意找出不同于常規的那個數,這往往是正確解決問題關鍵
轉載于:https://www.cnblogs.com/sz20142898/p/5543038.html
總結
以上是生活随笔為你收集整理的书店售书最低价格问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android7.1获取存储权限,And
- 下一篇: 决策树算法