本番問題をばらすなとは書いてあったけど
練習問題はみなさん見られるわけだし
大丈夫かな。たぶん。
問題文:
閏年判定の条件
- 西暦が4で割り切れる年は閏年。
- ただし、100で割り切れる年は閏年ではない。
- ただし、400で割り切れる年は閏年。
授業でやったのに覚えてないのがつらい。
自分の回答:
<?php
$input_line = trim(fgets(STDIN));
//echo($input_line);
for ($i = 0; $i < $input_line; $i++) {
$s = trim(fgets(STDIN));
$s = str_replace(array("\r\n","\r","\n"), '', $s);
$s = explode(" ", $s);
//echo "s0 = ".$s[0]." , s1 = ".$s[1]."\n";
//$hoge_s[i]=$s[0];
//echo($s[0]);
//echo("<br>");
$year = $s[0];
//うるう年の判定
if($year % 400 == 0){
//うるう年
echo ($year ." is a leap year"."\n");
}elseif($year % 100 == 0 ){
//うるう年ではない
echo ($year ." is not a leap year"."\n");
}elseif($year % 4 ==0){
//うるう年
echo ($year ." is a leap year"."\n");
}else{
//うるう年ではない
echo ($year ." is not a leap year"."\n");
}
}
?>
模範解答:
<?php
// 入力される行数の取得
$line_size = fgets(STDIN, 256);
for( $i = 0; $i < $line_size ; $i++){
$year = fgets(STDIN, 256);
$year = rtrim($year);
// うるう年判定
if (($year % 4 == 0 && $year % 100 != 0) || $year % 400 == 0) {
echo $year." is a leap year\n";
} else {
echo $year." is not a leap year\n";
}
}