説明文
誕生日の日付を推測します。以下の数字のグループが「システム」であるかどうかを判断することにより、誕生日を推測します。 set1 = 1 3 5 7、9 11 13 15,17 19 21 23,25 27 29 31 ; 判定を多次元配列で出力(改善)するか、ポップアップウィンドウを利用する必要があります。 |
入力
YまたはN 0または1 |
アウトプット
計算された誕生日 |
難易度
より難しい |
入力と出力の例
(上記が最初の方法です)
(上記は2番目の方法です) |
最初の方法(多次元配列)
import java.util.Scanner; public class GuessBirthdayUsingConfirmationDialog { public static void main(String[] args) { int day=0; int answer; int[][][] dates = { {{ 1, 3, 5, 7},{ 9, 11, 13, 15},{17, 19, 21, 23},{25, 27, 29, 31}}, {{ 2, 3, 6, 7},{10, 11, 14, 15},{18, 19, 22, 23},{26, 27, 30, 31}}, {{ 4, 5, 6, 7},{12, 13, 14, 15},{20, 21, 22, 23},{28, 29, 30, 31}}, {{ 8, 9, 10, 11},{12, 13, 14, 15},{24, 25, 26, 27},{28, 29, 30, 31}}, {{16, 17, 18, 19},{20, 21, 22, 23},{24, 25, 26, 27},{28, 29, 30, 31}}}; Scanner input = new Scanner(System.in); for (int i = 0; i < 5; i++) { System.out.println("Is your birthday in Set " + (i + 1) + "?"); for (int j = 0; j < 4; j++) { for (int k = 0; k < 4; k++) { System.out.printf("%4d", dates[i][j][k]); } System.out.println(); } System.out.print("\nEnter 0 for No and 1 for Yes: "); answer =input.nextInt(); if(answer==1){ day += dates[i][0][0]; } } System.out.print("你的生日是 "+day+"号!"); } }
第二种方式(出现选择窗口)
import javax.swing.*; public class GuessBirthdayUsingConfirmationDialog { public static void main(String[] args) { String set1=" 1 3 5 7\n"+" 9 11 13 15\n"+"17 19 21 23\n"+"25 27 29 31"; String set2=" 2 3 6 7\n"+"10 11 14 15\n"+"18 19 22 23\n"+"26 27 30 31"; String set3=" 4 5 6 7\n"+"12 13 14 15\n"+"20 21 22 23\n"+"28 29 30 31"; String set4=" 8 9 10 11\n"+"12 13 14 15\n"+"24 25 26 27\n"+"28 29 30 31"; String set5="16 17 18 19\n"+"20 21 22 23\n"+"24 25 26 27\n"+"28 29 30 31"; int day=0; int answer= JOptionPane.showConfirmDialog(null, "Is your birthday in these numbers?\n"+set1); if (answer==JOptionPane.YES_OPTION)day+=1; answer= JOptionPane.showConfirmDialog(null, "Is your birthday in these numbers?\n"+set2); if (answer==JOptionPane.YES_OPTION)day+=2; answer= JOptionPane.showConfirmDialog(null, "Is your birthday in these numbers?\n"+set3); if (answer==JOptionPane.YES_OPTION)day+=4; answer= JOptionPane.showConfirmDialog(null, "Is your birthday in these numbers?\n"+set4); if (answer==JOptionPane.YES_OPTION)day+=8; answer= JOptionPane.showConfirmDialog(null, "Is your birthday in these numbers?\n"+set5); if (answer==JOptionPane.YES_OPTION)day+=16; JOptionPane.showMessageDialog(null,"你的生日是 "+day+"号!"); } }