大学の講義で出題せれたのですが、javaでそれぞれ1901年、2004年、2007年、2009年の前のうるう年を表示しろということで、うるう年の検索、判定のプログラムまでは組めたのですが、前の年ということで、うるう年である2004年で表示さなくてはいけないのが1996年なのですが、どうしても2004年と表示されてしまいます。
色々と調べてみたのですが分からず、初めての投稿をさせていただきました。
どう組めば良いか教えてください。下が組んだプログラムです。
public static int preleap(int n){
if((n%4 == 0) & (n%100 != 0) ||n%400 == 0){
return n;
}else{
return preleap(n-1);
}
}
No.1ベストアンサー
- 回答日時:
&が&&だとして。
このプログラムだと、 preleap(n)と指定したら、n年から調べ始めている、ということはおわかりですか?
指定されたn年は判定の必要がないので、その前の年から調べればよいはずです。
ちょっと変えて、「nの一年前がうるう年かどうか」を調べるプログラムならどうなるでしょう?
やりかたは、いくつかあります。
こんな夜遅くの質問に早いお返事ありがとうございます。
その年を含みたくないなら、その前の年から考えろということですね
おかげでうまく表示することができました。
ありがとうございます。
No.2
- 回答日時:
4で割り切れると閏年、但し100で割り切れると閏年ではない、が400で割り切れると閏年
public static int preleap(int n){
if ( 0 == n%4 ) {
if ( 0 == n%100 ) {
if ( 0 == n%400 ) {
return n;
} else {
return preleap(n-1);
}
} else {
return n;
}
} else {
return preleap(n-1);
}
}
お早いお返事ありがとうございます。
けれどもすみません、これだとやっぱり2004年をnとしたとき値が2004と返ってきてしまいました。
けれども解決はできましたので、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Java配列でNullPointerExceptio...
-
ORA-01858: 数値を指定する箇所...
-
BOOL値を逆にしたい
-
データコンボのNullについて
-
getStringの値がNULLの時の処理
-
C# ListBoxのインデックスの値...
-
JSPによる画面間のパラメータの...
-
配列にnullを代入すると、null...
-
Path型をString型へ変換する(Java)
-
JSPやサーブレットでSystem.out...
-
オブジェクトの中のプロパティ...
-
csvファイルを2次元配列に格納
-
ダブルクォーテーションのrepla...
-
System.err. printlnとSystem.o...
-
[JAVA]try 内の変数を外で!?
-
VBAで配列の計算
-
Visual Basic でのコードをASCI...
-
JAVA 文字色変更
-
C++からC#のdllを参照する際、...
-
ArrayListによる計算表作成
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ORA-01858: 数値を指定する箇所...
-
BOOL値を逆にしたい
-
配列にnullを代入すると、null...
-
Java配列でNullPointerExceptio...
-
getStringの値がNULLの時の処理
-
eclipseでoracle接続時のエラー...
-
例外でBeanUtils.populateが、...
-
C#でラジオボタンとコンボボッ...
-
逆コンパイルの見方について(...
-
gas カレンダー祭日設定でエラー
-
C# ListBoxのインデックスの値...
-
jsp/Servletの動的に増えるフォ...
-
入力された文字列の制限
-
Tomcatを再起動するとエラーが...
-
if文を通らない
-
日付をyyyyMMddで取得したい。
-
java DAO 日付指定フォーマット...
-
Javaでboolean型を使ってのうる...
-
JSPで複数のSQL実行につ...
-
Stringを返す getText()メソッ...
おすすめ情報