0

これが私の要件です。年がうるう年かどうかを判断するアルゴリズム:

  • 4で割り切れる年は閏年
    • 年が 100 で割り切れる場合を除き、うるう年ではありません。
  • 年が 400 で割り切れる場合を除き、うるう年です。
  • それ以外の場合はうるう年ではありません

私が正しかったかどうかを知る必要がありますか?

private static boolean isLeapYear(int userInput){
    boolean leapYear= false;

    if (userInput % 4 == 0 ){
        leapYear = true;

        if (userInput % 4 == 0 && userInput % 100 ==0) {
            leapYear = false;

            if(userInput % 400 == 0){
                leapYear = true;
            }
        }
    }
    else {
        leapYear = false;
    }

    return leapYear;
}
4

9 に答える 9

0

これをC++で使用しました。

return ((userInput % 400) || ((userInput % 4) && !(userInput % 100)));

于 2015-03-25T20:48:06.057 に答える
0

正しい!簡略化:

  1. year % 41st でテスト済みの2nd ifbcから削除if
  2. 先頭にelseすでに設定されている bc を削除しますleap = False

パイソン:

def is_leap(year):
    leap = False

    if year % 4 == 0:
        leap = True

        if year % 100 == 0:
            leap = False

            if year % 400 == 0:
                leap = True

    return leap

単線:

def is_leap(year):
    return year % 4 == 0 and year % 100 != 0 or year % 400 == 0
于 2016-08-15T17:40:52.617 に答える
0

有効なうるう年にはこの条件を使用することをお勧めします
(((year%4 == 0) && (year%100 !=0)) || (year%400==0))

うるう年をチェックする同様の C プログラムを次に示します。

于 2015-05-24T15:08:03.983 に答える
-1

userInput % 4 == 0 && userInput % 100 ==0と同等ですuserInput % 400 == 0

そしてuserInput % 4 == 0、それは間違いなくうるう年なので、他の条件をチェックする必要はありません.

于 2012-10-19T04:32:33.803 に答える