Loading...
Plamen_Penev avatar Plamen_Penev 0 Точки

For-Loop - Exercise - Java - 04. Equal Pairs

Здравейте, 

На тест 7 ми дава грешка на кода, защото очакваният отговор е 88, а този от кода е 145.

Входящи данни 7-двойки:

1. 34+(-33) = 1

2. 52+12 = 64

3. -32+32 = 0

4. 23+41 = 64

5. 7+25 = 32

6. 34+23 = 57

7. 124+21=145

Най-голямата разлика, според мен е м/у 0 и 145...

Аз ли греша или има проблем ?

Тагове:
0
Programming Basics with Java
Plamen_Penev:
Намерена грешка!
dimaldim92 avatar dimaldim92 149 Точки

Пуснете кода и условието на задачата.

0
Plamen_Penev avatar Plamen_Penev 0 Точки

Дадени са 2 * n числа. Първото и второто формират двойка, третото и четвъртото също и т.н. Всяка двойка има стойност – сумата от съставящите я числа. Напишете програма, която проверява дали всички двойки имат еднаква стойност. В случай, че е еднаква отпечатайте "Yes, value=…" + стойността, в противен случай отпечатайте максималната разлика между две последователни двойки в следния формат - "No, maxdiff=…" + максималната разлика. Входът се състои от число n, следвано от 2*n цели числа, всички по едно на ред.

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = Integer.parseInt(sc.nextLine());
        int min = Integer.MAX_VALUE;
        int max = Integer.MIN_VALUE;
        for (int i=1;i<=n ;i++ ) {
            int first = Integer.parseInt(sc.nextLine());
            int second = Integer.parseInt(sc.nextLine());
            int sum = first+second;
            if (sum>max){
                max = sum;
            }
            if(sum<min){
                min = sum;
            }
        }
        if ((max - min) ==0){
            System.out.printf("Yes, value=%s", max);
        }else{
            System.out.printf("No, maxdiff=%s", (max-min));
        }
    }
}
 

0
dimaldim92 avatar dimaldim92 149 Точки

Малко логиката на проверките трябва да се промени, ето малко по-кратък код, който минава със 100/100:

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = Integer.parseInt(sc.nextLine());
        int min = Integer.MAX_VALUE;
        int max = Integer.MIN_VALUE;
        int lastSum = 0;
        int diff = 0;
        for (int i=0;i<n ;i++ ) {
            int first = Integer.parseInt(sc.nextLine());
            int second = Integer.parseInt(sc.nextLine());
            int sum = first+second;

            if(i > 0) {
                diff = Math.abs(lastSum - sum);
            }
            lastSum = sum;
        }

        if (diff == 0){
            System.out.printf("Yes, value=%s", lastSum);
        }else{
            System.out.printf("No, maxdiff=%s", diff);
        }
    }
}

 

0
Plamen_Penev avatar Plamen_Penev 0 Точки

"максималната разлика между две последователни двойки" - това ми е грешката .... Благодаря!

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