『どう書く?.org』連投。
お題はこちら。
与えられた文字列で十字を描けというもの。
PHPで書(描)きました。
ブラウザで出力するなら<pre>タグで括ると良い。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | $str = 'abracadabra'; $slen = strlen( $str ); $bar = $str.$str[0]; echo sprintf( "% ".strval($slen*2+1)."s\n", $bar ); for ( $i = 0; $i < $slen-1; $i++ ) { echo sprintf( "% ".strval($slen+1)."s% ".strval($slen)."s\n", $str[$slen-$i-1], $str[$i+1] ); } echo sprintf( "%s% ".strval($slen*2)."s\n", $bar, $bar ); for ( $i = 0; $i < $slen-1; $i++ ) { echo sprintf( "%s% ".strval($slen*3)."s\n", $str[$slen-$i-1], $str[$i+1] ); } echo sprintf( "%s% ".strval($slen*2)."s\n", $bar, $bar ); for ( $i = 0; $i < $slen-1; $i++ ) { echo sprintf( "% ".strval($slen+1)."s% ".strval($slen)."s\n", $str[$slen-$i-1], $str[$i+1] ); } echo sprintf( "% ".strval($slen*2+1)."s\n", $bar); |
$strに任意の文字列を設定すれば、それに応じた十字が描かれる。
関数化できる箇所があるけど、わかりやすさ優先でわざと同じものを書いている。
仕様として、文字列は半角英数字2文字以上とする。ガードは入れてない。
文字列’abc’の場合以下の結果となる。
1 2 3 4 5 6 7 8 9 10 | abca c b b c abca abca c b b c abca abca c b b c abca |
投稿:
http://ja.doukaku.org/comment/11244/
PHP Rank:16(61.6%)
どう書く.orgへのスパム何とかしてほしい。
Comments are closed.