初めに
最近codewarsというプログラミング練習用のサイトに登録した。私はこれまでのPJでPHPとJSはやっているので、問題はPHPで解いている。その中でこうすればさらに簡潔にプログラムを書けるなという気づきがあったので、備忘録として書く。
codewars
全て英語だが、他の人が書いた解答を見ることができる。また機会があればまとめる。
https://www.codewars.com/
問題の内容
かなりざっくりと書くと、以下のような問題があった。
西暦から何世紀かを返す関数を書け。例えば西暦2000年は20世紀、西暦1705年は18世紀を返すこと。
このような世紀を求める問題にぴったりの関数がある。
ceil関数
ceil(int|float $num): float
必要に応じて num を切り上げ、 num の次に大きい整数値を返します。
この関数を使えば以下のような処理で西暦から世紀を求めることができる。
PHP
function centuryFromYear($year)
{
return ceil($year / 100);
}
$year
=1705年の場合、$year/100
は17.05になる。さらにceil関数によって17.05を切り上げて、次の大きい整数値(この場合は18)を返す。
終わり
初めはif文を使って問題を解こうとしたが、調べてみるとちょうどよい関数があることが分かった。
PHPのマニュアルを見て、関数を使いこなせるようになりたい。