Задача 06.Equal Arrays - от Fundamentals module
Здравейте,
немога да разбера, каде ми е грешката в тази задача, уж открих логиката но ми дава 80 точки.
Може ли малко повече разяснение по нея. Благодаря Ви.
package com.company;
import java.lang.reflect.Array;
import java.util.Scanner;
public class EqualArrays {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String[] firstArray = scan.nextLine().split(" ");
int[] numberFirst = new int[firstArray.length];
String[] secondArray = scan.nextLine().split(" ");
int[] numberSecond = new int[secondArray.length];
int sumFirst = 0;
int diffrent = 0;
int position = 0;
for (int i = 0; i < firstArray.length; i++) {
numberFirst[i] = Integer.parseInt(firstArray[i]);
numberSecond[i] = Integer.parseInt(secondArray[i]);
if (numberFirst[i] != numberSecond[i]){
diffrent++;
position = numberFirst[i] -diffrent;
}
sumFirst += numberFirst[i];
}
if (diffrent == 0){
System.out.printf("Arrays are identical. Sum: %d",sumFirst);
}else {
System.out.printf("Arrays are not identical. Found difference at %d index.",position);
}
}
}
Колегата ти го е дал доста добре описано и с нови полезни неща.
Друг вариант е леко да си рефакторираш твоя код и да махнеш
- не са ти нужни.
След това да сложиш sumFirst += numberFirst[i]; преди проверката
и вътре в нея да си пуснеш печатането на случая, в който масивите не са идентични (тук position просто го заместваш с i), като след това обаче трябва да прекратиш изпълнението на програмата с един return. А печатането на стринга при случая, в който масивите са идентични го оставяш само него накрая без никакви проверки и си готов.
Поправих само и-то и аз не брейквах, а е трябвало да брейкна при първия.
Благодаря колега.
Колега, като я решавах вчера задачата не го виждах по този начин решението, малко по подробно пиша задачите все още и не съм мастер де :) Но всеки следващ път се опитвам за по кратки решения и по малко описания.
Благодаря ти.
+1 уп