開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの機能制限無料版、light版)
- Script言語:Ruby
『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の 7章(フロー制御), 7.5(練習問題)るう年 を解いてみる。
その他参考書籍
- 『プログラミング言語 Ruby』David Flanagan, まつもと ゆきひろ 著 、卜部 昌平 監訳、長尾 高弘 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-394-4)
- Rubyクックブック ―エキスパートのための応用レシピ集
うるう年
コード(TextWrangler)
sample.rb
#!/usr/bin/env ruby1.9 #-*- coding: utf-8 -*- print "範囲の先頭の年を入力: " start = gets.chomp.to_i print "範囲の末尾の年を入力: " stop = gets.chomp.to_i years = [] year = start while year <= stop break if year % 400 == 0 or (year % 100 != 0 and year % 4 == 0) year += 1 end years.push year year += 4 while year <= stop years.push year if year % 400 == 0 or (year % 100 != 0 and year % 4 == 0) year += 4 end print years.join("\n") + "\n"
入出力結果(Terminal)
$ ./sample.rb 範囲の先頭の年を入力: 1595 範囲の末尾の年を入力: 1605 1596 1600 1604 $ ./sample.rb 範囲の先頭の年を入力: 1795 範囲の末尾の年を入力: 1810 1796 1804 1808 $ ./sample.rb 範囲の先頭の年を入力: 1895 範囲の末尾の年を入力: 1910 1896 1904 1908 $ ./sample.rb 範囲の先頭の年を入力: 1980 範囲の末尾の年を入力: 2005 1980 1984 1988 1992 1996 2000 2004 $
ちなみにJavaScriptの場合。
コード(TextWrangler)
var start = parseInt($('#t0').val()); var stop = parseInt($('#t1').val()); years = []; var year = start; while(year <= stop){ if(year % 400 === 0 || (year % 100 !== 0 && year % 4 === 0)) break; year += 1; } years.push(year); year += 4; while(year <= stop){ if(year % 400 === 0 || (year % 100 !== 0 && year % 4 === 0)){ years.push(year); } year += 4; } var result = years.join("\n") + "\n"; $('#pre0').text(result);
pythonの場合。
sample.py
コード(TextWrangler)
#!/usr/bin/env python3.3 #-*- coding: utf-8 -*- print("範囲の先頭の年を入力: ", end="") start = int(input()) print("範囲の末尾の年を入力: ", end="") stop = int(input()) years = [] year = start while year <= stop: if year % 400 == 0 or \ (year % 100 != 0 and year % 4 == 0): break year += 1 else: print("範囲に閏年は含まれていない") years.append(year) year += 4 while year <= stop: if year % 400 == 0 or \ (year % 100 != 0 and year % 4 == 0): years.append(year) year += 4 years = map(str, years) print("\n".join(years))
入出力結果(Terminal)
$ ./sample.py 範囲の先頭の年を入力: 1595 範囲の末尾の年を入力: 1605 1596 1600 1604 $ ./sample.py 範囲の先頭の年を入力: 1795 範囲の末尾の年を入力: 1810 1796 1804 1808 $ ./sample.py 範囲の先頭の年を入力: 1895 範囲の末尾の年を入力: 1910 1896 1904 1908 $ ./sample.py 範囲の先頭の年を入力: 1980 範囲の末尾の年を入力: 2005 1980 1984 1988 1992 1996 2000 2004 $
0 コメント:
コメントを投稿