Help us understand the problem. What is going on with this article?

PHPで少し捻った問題を解く。

例えば、ループ処理で,
1から10までを順番に並べるという事は、誰でも出来ると思う。

index.php
for($i=1; $i<=10; $i++){
echo $i."\n";
}

/*
1
2
3
4
5
6
7
8
9
10
*/

これは、問題なかろう。
ただし、10以降の数字を一の位だけで、表示しろと言われたら、分からなくなってしまう方も
いらっしゃると思う。ちなみにメソッドや既存の関数は使用しないという前提条件があるとする。

index.php
<?php
//$n(数値)の個数をカウントする
for($i = 0; $i < 10; $i++){
$n = (int)trim(fgets(STDIN));
if($n >10){
$answer = $n - 10;
echo $answer."\n";
}else{
echo $n."\n";
}
}
?>

この問題を解くのに、2時間は当時要したが、問題が解けた時に、とても感動を覚えた。まずは、10より大きくなった場合と、そうで無い場合の2パターンを条件分岐で考える。ifとelseifがここで頭にパッと思い浮かぶ訳である。さらに、nが10より大きい場合は、nから10を引いた数字をanswerにいれて、それを表示させてやる必要がある。
反対に、nが10より小さい場合は、そのまま値を出力してあげればいいので、上のようなコードに仕上がった。

まとめ

プログラミングとは、論理的思考が求められる。このロジカルシンキングを大事にして、プログラミングを通して鍛えていきたい。まだまだひよっ子だけども、エンジニアになりたい。

誰かの参考になれば、嬉しいです。アディオス!

ayabouzu1993
https://youtu.be/GmdT4GspZDU YouTubeはじめました!みなさん、どうか見てやってください。 HTML/Cssの動画がメインです。 フロントエンドエンジニア目指してます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away