配列番号を変数で指定しエラーが起こっている
java言語の問題を解いていて、配列名(変数) - 配列名(変数)を実行して問題を解こうとしているのですがこのやり方は、出来ないのでしょうか。またおかしなところがありましたら、ご指摘いただきご教授していただきたいです。
問題
最初に各人はそれぞれボールをいくつか所持しています。
その後、適当な順番でボールをパスしていくのですが、この際にパスする相手とボールの個数を宣言します。
宣言した個数以上のボールを持っている場合は宣言した個数のボールを、そうでない場合は持っているボールすべてを、選んだ相手にパスします。
なお、ボールを所持できる数に上限はありません。
このパス回しの情報が順番に与えられるので、最終的に各人が持っているボールの個数を求めてください。
入力値
3 (人数)
10 (1のひとが初めに持っている数)
5 (2のひとが初めに持っている数)
8 (3のひとが初めに持っている数)
3 (パスの回数)
1 3 5 (1の人が3の人に5個ボールを渡す)
3 2 3 (3の人が2人に3個ボールを渡す)
2 1 10 (2の人が、1の人に10個ボールを渡す)
期待値
13 (1の人の最終的にのこった数)
0 (2の人の最終的にのこった数)
10 (3の人の最終的にのこった数)
該当のソースコード
java
1import java.util.*; 2public class Main { 3 public static void main(String[] args) { 4 // 自分の得意な言語で 5 // Let's チャレンジ!! 6 Scanner sc = new Scanner(System.in); 7 int human = sc.nextInt(); //人数 8 for(int i = 0; i < human; i++){ 9 int[] temoti = new int[sc.nextInt()];// 配列~人数(human)の中に値を入れる。 10 } 11 12 int pass = sc.nextInt(); //パス回しの回数 13 for(int i = 0; i < pass; i++){ 14 int giver = sc.nextInt()-1; //passを渡す人 15 int keeper = sc.nextInt()-1;// passを受け取る人 16 int give_num =sc.nextInt();//passするボールの個数 17 int temoti([giver]) = temoti([giver]) - give_num; 18 int temoti[keeper] = temoti[keeper] + give_num; 19 20 if (temoti[giver]< give_num){ 21 int temoti[keeper] = temoti[keeper] + temoti[giver]; 22 int temoti[giver] = 0; 23 } 24 } 25 26 for (int i = 0; i < temoti.length; i++){ 27 System.out.println(temoti[i]); 28 } 29 30 } 31}
何か変なところがあればそこも教えてください。お願いいたします。
回答1件
あなたの回答
tips
プレビュー