1. 程式人生 > >演算法題:假設一列火車一共經過10個車站,車站按順序為 A B C D E F G H I J ,編寫一個程式,自動計算剩餘的票

演算法題:假設一列火車一共經過10個車站,車站按順序為 A B C D E F G H I J ,編寫一個程式,自動計算剩餘的票

假設一列火車一共經過10個車站,車站按順序為 A B C D E F G H I J ,編寫一個程式,自動計算剩餘的票     要求:1 假設火車有100個座位        2.程式可以輸入購買車票的起始站與結束站        3.輸入後,程式輸出剩餘車票,        4.如剩餘車票大於0,使用者此時可以輸入購買,購買後,車票減一,        5.依次迴圈

    例如  輸入   C F              輸出  100              輸入  buy              輸出  buy ok              輸入  A  J       難點   輸入 A B              輸出 99                 輸出100

JAVA程式碼如下:

public class RailWay {     public static List<String> lists= new ArrayList<String>();     public static int getNums(char start, char end) {         int cnt = 100;         Iterator<String> its = lists.iterator();         while(its.hasNext()) {             String str = its.next();             char[] piaoDetail = str.toCharArray();             for(int i=0; i<piaoDetail.length; i++) {                 int mark = 0;                 for(char j=start; j<=end; j++) {                     if(piaoDetail[i]==j) {                         cnt--;mark=1;break;                     }                 }                 if(mark==1)                     break;             }         }         return cnt;     }

    public static void main(String[] args) {         @SuppressWarnings("resource")         Scanner s = new Scanner(System.in);         while(true) {             System.out.println("請輸入起點:");             String a = s.next();             char start = a.toCharArray()[0];             System.out.println("請輸入終點:");             String b = s.next();             char end = b.toCharArray()[0];             if(start>='A' && end <='J') {                 if(getNums(start, end)>0) {                     System.out.println("剩餘票:" + getNums(start, end));                     if(getNums(start, end) > 0) {                         System.out.println("確認買票輸入‘buy’");                         String in = s.next();                         if("buy".equalsIgnoreCase(in)) {                             StringBuffer sb = new StringBuffer("");                             for(char i=start;i<=end ;i++) {                                 sb.append(i);                             }                             lists.add(sb.toString());                             System.out.println(sb);                             System.out.println("buy ok!");                             System.out.println("當前庫裡存在的票有:"+lists.toString());                         }else {}                     }                 }else {                     System.out.println("票已售罄!");                 }             }else {                 System.out.println("請輸入正確的起點、終點!");             }         }     } }