開発環境
- OS X Lion - Apple(OS)
- BBEdit - Bare Bones Software, Inc.(Text Editor)
- Script言語:Ruby
『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の 7章(フロー制御), 7.5(練習問題)うるう年 を解いてみる。
その他参考書籍
- 『プログラミング言語 Ruby』David Flanagan, まつもと ゆきひろ 著 、卜部 昌平 監訳、長尾 高弘 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-394-4)
- Rubyクックブック ―エキスパートのための応用レシピ集
うるう年
コード(BBEdit)
sample.rb
#!/usr/bin/env ruby1.9 #-*- coding: utf-8 -*- print "範囲の先頭: " start = gets.chomp.to_i print "範囲の末尾: " stop = gets.chomp.to_i year = start result = "うるう年一覧\n" while year <= stop if (year % 400 == 0) || (year % 100 != 0 and year % 4 == 0) result += "#{year}\n" year += 4 break else year += 1 end end while year <= stop if (year % 400 == 0) || (year % 100 != 0 and year % 4 == 0) result += "#{year}\n" end year += 4 end print result
入出力結果(Terminal)
$ ./sample.rb 範囲の先頭: 1599 範囲の末尾: 1701 うるう年一覧 1600 1604 1608 1612 1616 1620 1624 1628 1632 1636 1640 1644 1648 1652 1656 1660 1664 1668 1672 1676 1680 1684 1688 1692 1696 $
ちなみにJavaScriptの場合。
コード(BBEdit)
var start = parseInt($('#start_year').val(), 10); var stop = parseInt($('#stop_year').val(), 10); var result = "うるう年一覧\n"; while(start <= stop){ if((start % 400 === 0) || (start % 100 !== 0 && start % 4 === 0)){ result += start + "\n"; start += 4; break; } else { start += 1; } } while(start <= stop){ if((start % 400 === 0) || (start % 100 !== 0 && start % 4 === 0)){ result += start + "\n"; } start += 4; } $('#pre0').text(result);
pythonの場合。
sample.py
コード(BBEdit)
#!//usr//bin//env python3.3 # -*- coding: utf-8 -*- start = int(input("範囲の先頭: ")) stop = int(input("範囲の末尾: ")) result = "うるう年一覧\n" while start <= stop: if (start % 400 == 0) or ( start % 100 != 0 and start % 4 == 0): result += "{0}\n".format(start) start += 4 break else: start += 1 for year in range(start, stop + 1, 4): if (year % 400 == 0) or ( year % 100 != 0 and year % 4 == 0): result += "{0}\n".format(year) print(result, end="")
入出力結果(Terminal)
$ ./sample.py 範囲の先頭: 1599 範囲の末尾: 1701 うるう年一覧 1600 1604 1608 1612 1616 1620 1624 1628 1632 1636 1640 1644 1648 1652 1656 1660 1664 1668 1672 1676 1680 1684 1688 1692 1696 $
perlの場合。
sample.pl
コード(BBEdit)
#!/usr/bin/env perl use strict; use warnings; use utf8; use 5.016; binmode STDIN, ":utf8"; binmode STDOUT, ":utf8"; print "範囲の先頭: "; chomp(my $start = <STDIN>); print "範囲の末尾: "; chomp(my $stop = <STDIN>); my $result = "うるう年一覧\n"; while($start <= $stop){ if(($start % 400 == 0) || ($start % 100 != 0 && $start % 4 == 0)){ $result .= "$start\n"; $start += 4; last; } else { $start += 1; } } while($start <= $stop){ if(($start % 400 == 0) || ($start % 100 != 0 && $start % 4 == 0)){ $result .= "$start\n"; } $start += 4; } print $result;
入出力結果(Terminal)
$ ./sample.pl 範囲の先頭: 1599 範囲の末尾: 1701 うるう年一覧 1600 1604 1608 1612 1616 1620 1624 1628 1632 1636 1640 1644 1648 1652 1656 1660 1664 1668 1672 1676 1680 1684 1688 1692 1696 $
0 コメント:
コメントを投稿