Loading...
ucko0o avatar ucko0o 3 Точки

11. * Елемент, равен на сумата на останалите

Здравейте , имате ли някакви предложения за решаване на задачата :

Да се напише програма, която чете n-на брой цели числа, въведени от потребителя, и проверява дали сред
тях съществува число, което е равно на сумата на всички останали. Ако има такъв елемент, печата "Yes", "Sum
= " + неговата стойност; иначе печата "No", "Diff = " + разликата между най-големия елемент и сумата на
останалите (по абсолютна стойност). 
  ?

Благодаря Предварително!

Тагове:
0
Programming Basics
Svetoslavivanov0 avatar Svetoslavivanov0 24 Точки

Ето решение на c# https://pastebin.com/qFjSuaUG. Ако има въпроси - питай!

0
ucko0o avatar ucko0o 3 Точки

разбрах я и я пренаписах на Java .. Благодаря Много !  

Обаче имам и затруднения с още една , последната задача от домашното.Ще се радвам ако

имаш решения и за нея :

 

13. * Еднакви двойки
Дадени са 2*n-на брой числа. Първото и второто формират двойка, третото и четвъртото също и т.н. Всяка
двойка има стойност – сумата от съставящите я числа. Напишете програма, която проверява дали всички
двойки имат еднаква стойност или печата максималната разлика между две последователни двойки. Ако
всички двойки имат еднаква стойност, отпечатайте "Yes, value={Value}" + стойността. В противен случай
отпечатайте "No, maxdiff={Difference}" + максималната разлика.

 

Поздрави!

0
Svetoslavivanov0 avatar Svetoslavivanov0 24 Точки

Малко късно видях, но все пак са ти я пратили. Ако имаш други въпроси - питай. :))

0
dimiOrange avatar dimiOrange 63 Точки

Здравей,

Ето решение и от мен. 

Поздрави

 

import java.util.Scanner;

 

public class HalfSumElement {
    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);
        // n = Брой елементи
        int n = Integer.parseInt(console.nextLine());

 

        int largestNumber = 0;
        int sum = 0;

 

        for (int i = 0; i < n; i++) {
            int number = Integer.parseInt(console.nextLine());
            sum += number;

 

            if (i == 0) {
                largestNumber = number;
            } else {
                if (number > largestNumber) {
                    largestNumber = number;
                }
            }
        }

 

        int difference = Math.abs(2 * largestNumber - sum);
        if (difference == 0) {
            System.out.printf("%s%n", "Yes");
            System.out.printf("%s%d", "Sum = ", largestNumber);
        } else {
            System.out.printf("%s%n", "No");
            System.out.printf("%s%d", "Diff = ", difference);
        }
    }
}
 

1
ucko0o avatar ucko0o 3 Точки

Разбрах я и  Judge я прие , Благодаря ти много !

Има още една която ме затруднява от домашното , 

ако си и решавал и нея ще съм благодарен да ми споделиш  :)

 

13. * Еднакви двойки
Дадени са 2*n-на брой числа. Първото и второто формират двойка, третото и четвъртото също и т.н. Всяка
двойка има стойност – сумата от съставящите я числа. Напишете програма, която проверява дали всички
двойки имат еднаква стойност или печата максималната разлика между две последователни двойки. Ако
всички двойки имат еднаква стойност, отпечатайте &quot;Yes, value={Value}&quot; + стойността. В противен случай
отпечатайте &quot;No, maxdiff={Difference}&quot; + максималната разлика.

 

Поздрави !

0
dimiOrange avatar dimiOrange 63 Точки

Разбира се, ето я и нея.

Поздрави

 

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);
        }
    }
}
 

1
Stanislav911 avatar Stanislav911 0 Точки

Извинявай, но можеш ли да ми обясниш защо е  int difference = Math.abs(2 * largestNumber - sum); много ще съм ти благодарен !!!

всичко ми стана ясно без това, благодаря предварително

За * Елемент, равен на сумата на останалите става въпрос ,твоето решение

0
17/04/2018 14:03:45
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.