From f64c8ec7b9756139116073d9e1c7c5a24fcb05f3 Mon Sep 17 00:00:00 2001 From: amir mohammad ghazanfari Date: Fri, 28 Mar 2025 16:21:19 +0330 Subject: [PATCH] First Part --- .../java/com/github/javabaz/Calculator05.java | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 week01/src/main/java/com/github/javabaz/Calculator05.java diff --git a/week01/src/main/java/com/github/javabaz/Calculator05.java b/week01/src/main/java/com/github/javabaz/Calculator05.java new file mode 100644 index 0000000..809964e --- /dev/null +++ b/week01/src/main/java/com/github/javabaz/Calculator05.java @@ -0,0 +1,54 @@ +package com.github.javabaz; + +public class Calculator05 { + + public int add(int a, int b) { + return a + b; + } + + public int subtract(int a, int b) { + return a - b; + } + + public int multiply(int a, int b) { + return a * b; + } + + public int divide(int a, int b) { + if (b == 0) { + throw new ArithmeticException("Cannot divide by zero"); + } + return a / b; + } + + public double pow(int a, int b) { + //double pow = Math.pow(a, b); + //step three 0^0 + if (a == 0 && b == 0) { + throw new ArithmeticException("Undefined"); + } + //step five 1/0 + if (a == 0 && b < 0) { + throw new ArithmeticException("Undefined: divide by zero"); + } + + double pow = 1; + + // step one + for (int i = 1; i <= Math.abs(b); i++) { // ghadre motlagh = Math.abs(b) + pow = a * pow; + } + + // step two + // اگر توان منفی باشه باید پایه رو ببریم زیر خط کسری + // اول مثبت میشه بعد میره توانش خساب میشه بعد میره زیر یک + // اگر توان منفی بود، معکوس را برگردان + if (b < 0) { + return 1 / pow; + } + + return pow; + } + +} +