Loading...
kalin.kostadinov avatar kalin.kostadinov 5 Точки

PB-Java Operations Between Numbers 90/100

Здравейте!

Цял ден я мисля и не мога да изкарам повече от 90 точки. Моля за помощ.

Моето решение:

https://pastebin.com/6ACM3fHg

Задачата:

Операции между числа

Напишете програма, която чете две цели числа (N1 и N2) и оператор, с който да се извърши дадена математическа операция с тях. Възможните операции са: Събиране(+), Изваждане(-), Умножение(*), Деление(/) и Модулно деление(%). При събиране, изваждане и умножение на конзолата трябва да се отпечатат резултата и дали той е четен или нечетен. При обикновеното делениерезултата. При модулното делениеостатъка. Трябва да се има предвид, че делителят може да е равен на 0(нула), а на нула не се дели. В този случай трябва да се отпечата специално съобщениe.

Вход

От конзолата се прочитат 3 реда, въведени от потребителя:

  • N1цяло число в интервала [0...40 000]
  • N2цяло число в интервала [0...40 000]
  • Операторедин символ измеду: „+“, „-“, „*“, „/“, „%

Изход

Да се отпечата на конзолата един ред:

  • Ако операцията е събиране, изваждене или умножение:
    •  „{N1} {оператор} {N2} = {резултат} – {even/odd}“
  • Ако операцията е деление:
    • „{N1} / {N2} = {резултат}“ – резултатът е фораматиран до вторият знак след дес.запетая
  • Ако операцията е модулно деление:
    • „{N1} % {N2} = {остатък}“
  • В случай на деление с 0(нула):
    • „Cannot divide {N1} by zero“

 

Примерен вход и изход

вход

изход

вход

изход

вход

изход

10

12

+

10 + 12 = 22 - even

123

12

/

123 / 12 = 10.25

112

0

/

Cannot divide 112 by zero

10

1

-

10 – 1 = 9 - odd

10

3

%

10 % 3 = 1

10

0

%

Cannot divide 10 by zero

7

3

*

7 * 3 = 21 - odd

 

Тагове:
0
Programming Basics
kkaraivanov avatar kkaraivanov 486 Точки

В switch-а си направи само действията на оператора и операндите. В отделен от switch-а if и else if направи проверките за even, odd и делението на "0", като за делението ползвай булева която да се сменя в switch-а.

0
kalin.kostadinov avatar kalin.kostadinov 5 Точки

Всъщност проблема беше в проверката за четен или нечетен отговор при оператори "+", "-" и "*".

До колкото разбрах този ред и подобни на него с отрицателен резултат: ifOdd = (n1-n2)%2==1; , е грешен и проверката трябва да е "==0" или "!=0", понеже ако "n1-n2" даде отрицателен резултат, модулното деление неможе да даде остатък 1.

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