- 2008-05-30 (金) 21:46
- PHP
suniti さんの「blog.grayash.com - 第0回「新しくプログラミング言語を覚えたいときに行うべき10の練習問題」をPHPでやってみよう!」というエントリーに感化されて、IDEA * IDEA の「新しくプログラミング言語を覚えたいときに行うべき10の練習問題」というエントリーで書かれている練習問題を PHP で解いてみることにします。
全部で10問ありますが、まずは第 1 問。世界のナベアツですねw
1.「なんらかのカウントアップメッセージを1から100まで出すけど、3のときだけアホになる!(例:1万円!2万円!しゃ~ん万円!とか)」。
で、解いてみました。
<?php
$aho10 = array ('', 'じゅー', 'ぬぃじゅ', 'さぁんじゅ', 'よぉんじゅ', 'ごぉじゅ', 'ろくぅじゅ', 'ななじゅ', 'はぁちじゅ', 'きゅーじゅ');
$aho1 = array ('', 'いっち', 'ぬぃー', 'さぁーん', 'よぉーん', 'ごぉー', 'ろくー', 'しぃっち', 'はぁっち', 'きゅー');
for ($i = 1; $i <= 100; $i++) {
if ($i % 3 == 0 || strpos((string)$i, '3') !== false) {
print ($aho10[(int)($i / 10)].$aho1[$i % 10].'<br />');
} else {
print ($i.'<br />');
}
}
?>
引っかかったところは、strpos 関数で 3 があるかどうか調べるところ。
当初 strpos((string)$i, ‘3′) >= 0 という条件にしたのですが、3 が見つからなかった場合でもこの条件が true になってしまいました。
調べた結果、false が 0 として判断されたためだと分かったので、!== 演算子を使って見つかったかどうかを判断するようにしました。
参考リンク
Comments:1
- suniti 08-06-01 (日) 4:01
-
エントリー書いてくださってありがとうございます!
コードが自分のよりも短くて勉強になります。自分がいかに無駄な処理をしてるのかと…(n’ω’ `)
Trackbacks:0
- Trackback URL for this entry
- http://www.sukechan.net/archives/65/trackback/
- Listed below are links to weblogs that reference
- 「新しくプログラミング言語を覚えたいときに行うべき10の練習問題」を PHP で解いてみる【第 1 回】 from sukechan.net