These pages are written by only Japanese.
|
Namazu for hns による簡易全文検索です。 詳細は 詳細指定/ヘルプをご参照下さい。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||
1から100までの数をプリントするプログラムを書け。 ただし3の倍数のときは数の代わりに「Fizz」と、 5の倍数のときは「Buzz」とプリントし、 3と5両方の倍数の場合には「FizzBuzz」とプリントすること。
<?php foreach (range(1, 100) as $n) { if ($n % 3 == 0) { if ($n % 5 == 0) { echo "FizzBuzz\n"; } else { echo "Fizz\n"; } } elseif ($n % 5 == 0) { echo "Buzz\n"; } else { echo "$n\n"; } }
<?php foreach (range(1, 100) as $n) { $d = ''; if ($n % 3 == 0) { $d .= "Fizz"; } if ($n % 5 == 0) { $d .= "Buzz"; } if ($d === '') { $d = $n; } echo "$d\n"; }
<?php foreach (range(1, 100) as $n) { $d = ($n % 3)?'':"Fizz"; $d .= ($n % 5)?'':"Buzz"; echo ($d?$d:$n)."\n"; }三項演算子を入れ子にすれば更に短くなりそうですが、その一線は越えたくないです…
<?php foreach (range(1, 100) as $n) { $b3 = ($n % 3)?0:1; $b5 = ($n % 5)?0:2; switch ($b3 | $b5) { case 0: echo "$n\n"; break; case 1: echo "Fizz\n"; break; case 2: echo "Buzz\n"; break; case 3: echo "FizzBuzz\n"; break; } }
$fmt = array('%d', 'Fizz', 'Buzz', 'FizzBuzz'); foreach (range(1, 100) as $n) { $b3 = ($n % 3)?0:1; $b5 = ($n % 5)?0:2; printf($fmt[$b3 | $b5]."\n", $n); }
foreach (1 .. 100) { $a = ('FizzBuzz', 'Fizz', 'Buzz', 0)[($_ % 3 > 0) + 2 * ($_ % 5 > 0)] || $_; print "$a\n"; }|| $_ とかトリッキーな事しなくても 0 を $_ にすればよいですね。
foreach (1 .. 100) { $_ = ($_, 'Fizz', 'Buzz', 'FizzBuzz')[!($_ % 3) + 2 * !($_ % 5)]."\n"; print }奇麗に記述できます。
$this->_shapeBounds = IO_SWF_Type::parseRECT($reader); $this->_parseFILLSTYLEARRAY($reader); $this->_parseLINESTYLEARRAY($reader); $reader->byteAlign(); $numFillBits = $reader->getUIBits(4); $numLineBits = $reader->getUIBits(4); while ($done === false) { $typeFlag = $reader->getUIBit(); if ($typeFlag == 0) { $endOfShape = $reader->getUIBits(5); if ($endOfShape == 0) { $done = true; } else { // StyleChangeRecord ... $stateNewStyles = $reader->getUIBit(); if ($stateNewStyles) { $this->_parseFILLSTYLEARRAY($reader); $this->_parseLINESTYLEARRAY($reader); $reader->byteAlign(); $numFillBits = $reader->getUIBits(4); $numLineBits = $reader->getUIBits(4); } } } else { $straightFlag = $reader->getUIBit(); if ($straightFlag) { // StraightEdgeRecord ... } else { // CurvedEdgeRecord ... } } }
pear channel-discover openpear.org pear install openpear/IO_Bit pear install openpear/IO_SWFでインストールして、pear ディレクトリの sample/swfdump.php にファイルを渡すと動作します。
ShapeId: 1 ShapeBounds: (-7.75, -7.75) - (7.75, 7.75) FillStyles: solid fill: #0066ff LineStyles: ShapeRecords: ChangeStyle: MoveTo: (-7.75, -7.75) FillStyle: 0|1 LineStyle: 0 StraightEdge: MoveTo: (7.75, -7.75) StraightEdge: MoveTo: (7.75, 7.75) StraightEdge: MoveTo: (-7.75, 7.75) StraightEdge: MoveTo: (-7.75, -7.75)こんな感じです。