🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

1472閲覧

hit&blowを作りました!答えが5桁の数字や6桁になるのですが、5桁の数字のみにするにはどうすれば良いでしょうか?

ta.tatu

総合スコア12

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2019/10/30 21:46

編集2019/10/30 21:50

package

1 2import java.io.BufferedReader; 3import java.io.IOException; 4import java.io.InputStreamReader; 5import java.util.ArrayList; 6import java.util.Collections; 7 8public class hitandblow02 { 9 10 public static void main(String[] args)throws IOException { 11 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 12 ArrayList<Integer> list = new ArrayList<Integer>(); 13 String str = "5桁の数字を入力してください。"; 14 String ans =""; 15 int num[] = new int[5]; 16 int count = 0; 17 18 for(int i = 0; i <= 10; i++) { 19 list.add(i); 20 } 21 Collections.shuffle(list); 22 23 for(int i =0; i < num.length; i++) { 24 num[i] = list.get(i); 25 System.out.print(num[i]); 26 } 27 28 29 while(true) { 30 System.out.println(""); 31 System.out.print(str); 32 ans = br.readLine(); 33 34 if(ans.length() == 5) { 35 str = "5桁の数字を入力してください。"; 36 count++; 37 ArrayList<Integer> player = new ArrayList<Integer>(); 38 player.add((Integer.parseInt(ans) / 10000)% 10); 39 player.add((Integer.parseInt(ans) / 1000)% 10); 40 player.add((Integer.parseInt(ans) / 100)% 10); 41 player.add((Integer.parseInt(ans) / 10)% 10); 42 player.add(Integer.parseInt(ans) % 10); 43 44 int hit = 0; 45 for(int i = 0; i < num.length; i++) { 46 if(player.get(i) == num[i]) { 47 hit++; 48 } 49 } 50 51 int blow = 0; 52 for(int i = 0; i < num.length; i++) { 53 for(int j = 0; j < num.length; j++) { 54 if(player.get(i) == num[j]) { 55 blow++; 56 } 57 } 58 } 59 if(hit == 5) { 60 System.out.println("おめでとう!" + count + "回目で成功♪"); 61 break; 62 } 63 64 System.out.println("ヒット :" + hit + "個、 ブロー:" + (blow - hit) + "個"); 65 System.out.println(""); 66 67 if(count % 3 == 0) { 68 System.out.print("ヒント : "); 69 for(int i = 1; i <= (count / 3); i++) { 70 System.out.print(num[i - 1]); 71 } 72 }else { 73 str = "5桁の数字を入力してください。"; 74 System.out.println(""); 75 } 76 str = "5桁の数字を入力してください。"; 77 System.out.println(""); 78 } 79 } 80 } 81} 82 83コード

hit&blowを改良して見ました!
答えが5桁や6桁になるのですが、どこが間違いか分からないです!
教えて頂けたら助かります!
宜しく御願いします!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Java

1 2for(int i = 0; i <= 10; i++) {

ここの i <= 10 は、 i < 10 ですね。今の状態だと list10 が入ってしまい、それが選択された場合二桁の数値なので 6 桁になると思います。

投稿2019/10/30 22:09

ironya

総合スコア456

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ta.tatu

2019/10/30 22:15

ありがとうございました。 助かりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問