Задача Equal Sums Left Right Position ?????????????????
Здравейте колеги имам въпрос или аз не съм добре с главата или никаква логика няма в следните кодове!!!
Това е моят код който не дава никакви точки:
import java.util.Scanner; public class EqualSumsLeftRightPosition { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int one = Integer.parseInt(scanner.nextLine()); int two = Integer.parseInt(scanner.nextLine()); for (int a = one; one <= two; a++) { int left = 0; int middle = 0; int right = 0; for (int b = 0; b <= Integer.toString(b).length() - 1; b++) { int num = Integer.toString(a).charAt(b) - 48; if (b <= 1) { left += num; } else if (b >= 3){ right += num; }else { middle += num; } if (left == right || (Math.min(left, right) + middle == Math.max(left, right))) { } System.out.printf("%d", a); } } } }
И ето този код който дава 100/100 :
import java.util.Scanner;
public class EqualSumsLeftRight {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int f = Integer.parseInt(scanner.nextLine());
int s = Integer.parseInt(scanner.nextLine());
for (int i = f; i <= s; i++) {
int leftSum = 0;
int midSum = 0;
int rightSum = 0;
for (int k = 0; k <= Integer.toString(i).length() - 1; k++) {
int num = Integer.toString(i).charAt(k) - 48;
if (k <= 1) leftSum += num;
else if (k >= 3) rightSum += num;
else midSum += num;
}
if (leftSum == rightSum || ( Math.min(leftSum, rightSum) + midSum == Math.max(leftSum,rightSum))) {
System.out.printf("%d ", i);
}
}
}
}
Ще помоля някой по компетентен да ми обясни защо моя не работи а втория работи???
Да благодаря общо взето тея задачи са още Пълна Каша и Мъгла!!!