Loading...
zdravkostov avatar zdravkostov 4 Точки

Задача "Операции между числа" - Java, programing basics, тема 8

Условие:

6. Операции между числа
Напишете програма, която чете две цели числа (N1 и N2) и оператор, с който да се извърши дадена
математическа операция с тях. Възможните операции са: Събиране(+), Изваждане(-), Умножение(*),
Деление(/) и Модулно деление(%). При събиране, изваждане и умножение на конзолата трябва да се
отпечатат резултата и дали той е четен или нечетен. При обикновеното деление – резултата. При модулното
деление – остатъка. Трябва да се има предвид, че делителят може да е равен на 0(нула), а на нула не се
дели. В този случай трябва да се отпечата специално съобщениe.
Вход
От конзолата се прочитат 3 реда, въведени от потребителя:
 N1 – цяло число в интервала [0...40 000]
 N2 – цяло число в интервала [0...40 000]
 Оператор – един символ измеду: „+“, „-“, „*“, „/“, „%“
Изход
Да се отпечата на конзолата един ред:
 Ако операцията е събиране, изваждене или умножение:
o „{N1} {оператор} {N2} = {резултат} – {even/odd}“
 Ако операцията е деление:
o „{N1} / {N2} = {резултат}“ – резултатът е фораматиран до вторият знак след дес.запетая
 Ако операцията е модулно деление:
o „{N1} % {N2} = {остатък}“
 В случай на деление с 0(нула):
o „Cannot divide {N1} by zero“

 

В Judge задачата ми дава 90/100, като имам грешка на първия(ненулев) тест. Ето го моето решение:

import java.util.Scanner;

public class OperationsBetweenNumbers {
    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);

        double num1 = Double.parseDouble(scan.nextLine());
        double num2 = Double.parseDouble(scan.nextLine());
        double result;
        String symbol = scan.nextLine();

        switch (symbol) {

            case ("+"):
                result = num1 + num2;

                System.out.printf("%.0f", num1);
                System.out.print(" + ");
                System.out.printf("%.0f", num2);
                System.out.print(" = ");
                System.out.printf("%.0f", result);
                System.out.print(" - ");

                if (result % 2 == 0) {
                    System.out.println("even");
                } else {
                    System.out.println("odd");
                }
                break;

            case ("-"):
                result = num1 - num2;

                System.out.printf("%.0f", num1);
                System.out.print(" - ");
                System.out.printf("%.0f", num2);
                System.out.print(" = ");
                System.out.printf("%.0f", result);
                System.out.print(" - ");

                if (result % 2 == 0) {
                    System.out.println("even");
                } else {
                    System.out.println("odd");
                }
                break;

            case ("*"):
                result = num1 * num2;

                System.out.printf("%.0f", num1);
                System.out.print(" * ");
                System.out.printf("%.0f", num2);
                System.out.print(" = ");
                System.out.printf("%.0f", result);
                System.out.print(" - ");

                if (result % 2 == 0) {
                    System.out.println("even");
                } else {
                    System.out.println("odd");
                }
                break;

            case ("/"):
                result = num1 / num2;

                if (num2 != 0) {
                    if (result % 1 == 0) {
                        System.out.printf("%.0f", num1);
                        System.out.print(" / ");
                        System.out.printf("%.0f", num2);
                        System.out.print(" = ");
                        System.out.printf("%.0f", result);
                        System.out.println("");
                    } else {
                        System.out.printf("%.0f", num1);
                        System.out.print(" / ");
                        System.out.printf("%.0f", num2);
                        System.out.print(" = ");
                        System.out.printf("%.2f", result);
                        System.out.println("");
                    }
                } else {
                    System.out.print("Cannot divide ");
                    System.out.printf("%.0f", num1);
                    System.out.println(" by zero");
                }
                break;

            case ("%"):
                result = num1 % num2;

                if (num2 != 0) {
                    System.out.printf("%.0f", num1);
                    System.out.print(" % ");
                    System.out.printf("%.0f", num2);
                    System.out.print(" = ");
                    System.out.printf("%.0f", result);
                } else {
                    System.out.print("Cannot divide ");
                    System.out.printf("%.0f", num1);
                    System.out.println(" by zero");
                }
                break;

        }

    }
}
Тагове:
0
Programming Basics
A.Neshkova avatar A.Neshkova 45 Точки
Best Answer

Имаше една излишна проверка при  "/"

Ето твоя код + махнатата проверка 100/100 в judge ;)

https://pastebin.com/JitTS8Tt

0
zdravkostov avatar zdravkostov 4 Точки

Мерси! Аз друго си имах в главата.

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