練習(駐車料金計算)

練習のため、また問題を取ってきた。 http://www.media.osaka-cu.ac.jp/~matsuura/2006-PP/index.html

課題3-1 (駐車料金)

A駐車場の料金は,60分まで1000円,以後,30分毎に600円です. 駐車する時間を分単位で入力し,駐車料金を求めるプログラム ParkingCharge を書いて下さい.while文の練習なので,while文を使うこと.

回答

やっぱり、練習のために無理矢理再帰。
 
(defun prompt-read (prompt)
  (format *query-io* "~a: " prompt)
  (force-output *query-io*)
  (read-from-string (read-line *query-io*)))

(defun parking-charge (m)
  (labels ((how-match (m price)
                                             (if (>= 30 m)
                                               price
                                               (how-match (- m 30) (+ price 600)))))
    (how-match (- m 30) 1000)))
 
(format t "~a円~%" (parking-charge (prompt-read "駐車時間(分)")))
labelsばっかり使ってる。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


reCaptcha の認証期間が終了しました。ページを再読み込みしてください。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください