1~13の数字が書かれたトランプカードがあります。
カードの数字が2の倍数の時は「Doubt」と出力し、3の倍数の時は「Doubt!!」と出力し2と3の倍数の時は「Doubt Doubt!!」と出力する。それら以外の時は1~13の数字を出力する。
・入力値
13 2
2 Doubt
3 Doubt!!
・出力値
正しい
1
Doubt
Doubt!!
Doubt
5
Doubt Doubt!!
7
Doubt
Doubt!!
Doubt
11
Doubt Doubt!!
13
私の出力値
1
Doubt 2
Doubt!!
Doubt 4
5
Doubt Doubt!!
7
Doubt 8
Doubt!!
Doubt 10
11
Doubt Doubt!!
13
java
1import java.util.*; 2 3public class Main { 4 public static void main(String[] args) { 5 Scanner sc = new Scanner(System.in); 6 7 int n = sc.nextInt();//カードの枚数 8 int m = sc.nextInt();//掛け声の回数 9 10 int[] shoutRule = new int[m];//掛け声の規則を表す整数 11 String[] shout = new String[m];//掛け声 12 13 for(int i=0; i<m; i++){ 14 shoutRule[i] = sc.nextInt(); 15 shout[i] = sc.next(); 16 } 17 18 for(int i=1; i<=n; i++){ 19 int count = 0; 20 for(int j=0; j<m; j++){ 21 if(i % shoutRule[j] == 0){//倍数の時 22 count++; 23 if(count <= m){ 24 System.out.print(shout[j]); 25 if(count < m){ 26 System.out.print(" "); 27 }else{ 28 System.out.println(); 29 } 30 } 31 }else{//倍数でない時 32 count++; 33 if(count == m){ 34 System.out.println(i); 35 } 36 } 37 } 38 } 39 } 40} 41
整数が2の倍数で3の倍数でない時に間違っている。そこを修正すると、2の倍数で2の倍数の時がおかしくなってしまいます。自分では条件式の書き方が悪いと思うのですが、どう書いたら良いのかわかりません。
回答3件
あなたの回答
tips
プレビュー