11. * Елемент, равен на сумата на останалите
Здравейте , имате ли някакви предложения за решаване на задачата :
Да се напише програма, която чете n-на брой цели числа, въведени от потребителя, и проверява дали сред
тях съществува число, което е равно на сумата на всички останали. Ако има такъв елемент, печата "Yes", "Sum
= " + неговата стойност; иначе печата "No", "Diff = " + разликата между най-големия елемент и сумата на
останалите (по абсолютна стойност). ?
Благодаря Предварително!
Разбрах я и Judge я прие , Благодаря ти много !
Има още една която ме затруднява от домашното ,
ако си и решавал и нея ще съм благодарен да ми споделиш :)
13. * Еднакви двойки
Дадени са 2*n-на брой числа. Първото и второто формират двойка, третото и четвъртото също и т.н. Всяка
двойка има стойност – сумата от съставящите я числа. Напишете програма, която проверява дали всички
двойки имат еднаква стойност или печата максималната разлика между две последователни двойки. Ако
всички двойки имат еднаква стойност, отпечатайте "Yes, value={Value}" + стойността. В противен случай
отпечатайте "No, maxdiff={Difference}" + максималната разлика.
Поздрави !
Разбира се, ето я и нея.
Поздрави
import java.util.Scanner;
public class Pairs {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
int pairs = Integer.parseInt(console.nextLine());
int pairValue = 0;
int previousPairValue = 0;
int pairValueDifference = 0;
int maximalDifference = 0;
for (int i = 0; i < pairs; i++) {
int numberOne = Integer.parseInt(console.nextLine());
int numberTwo = Integer.parseInt(console.nextLine());
pairValue = numberOne + numberTwo;
if (i == 0) {
previousPairValue = pairValue;
} else {
pairValueDifference = Math.abs(pairValue - previousPairValue);
previousPairValue = pairValue;
if (pairValueDifference > maximalDifference) {
maximalDifference = pairValueDifference;
}
}
}
if (pairValueDifference == 0) {
System.out.printf("Yes, value=%d", pairValue);
} else {
System.out.printf("No, maxdiff=%d", maximalDifference);
}
}
}
Извинявай, но можеш ли да ми обясниш защо е int difference = Math.abs(2 * largestNumber - sum); много ще съм ти благодарен !!!
всичко ми стана ясно без това, благодаря предварително
За * Елемент, равен на сумата на останалите става въпрос ,твоето решение
Здравей,
Радвам се, че решението е полезно :)
Използвал съм Math.abs(), за да се изчисли правилно резултата (по желаният начин от условието), когато той не е нула.
Например в случая, когато въвеждаме 5, 5, 1 и не сме взели абсолютната стойност на разликата, резултатът ще е -1.
Поздрави