From 680a31448315ef159c33f8a9327d121e1e6d0b3d Mon Sep 17 00:00:00 2001 From: kieran Date: Sat, 30 Mar 2024 13:16:05 -0700 Subject: [PATCH] lab9 --- .idea/vcs.xml | 6 ++++++ README.md | 8 ++++---- src/BigIntRewrite.java | 16 +++++++++++++++- src/Part1_2.png | Bin 0 -> 7743 bytes src/Part1_3.png | Bin 0 -> 11911 bytes src/Part1_4.png | Bin 0 -> 7027 bytes src/Part2_1.png | Bin 0 -> 8013 bytes src/Part3_1.png | Bin 0 -> 5719 bytes src/StringPlayground.java | 16 +++++++++++++++- 9 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 .idea/vcs.xml create mode 100644 src/Part1_2.png create mode 100644 src/Part1_3.png create mode 100644 src/Part1_4.png create mode 100644 src/Part2_1.png create mode 100644 src/Part3_1.png diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/README.md b/README.md index e759bf3..d0433bc 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ * Is the **blank** object mutable or immutable? How can you tell? ```text -PUT ANSWER TO #2 HERE +It's mutable because I can modify the x and y coordinates. ``` ```java @@ -87,14 +87,14 @@ Recall that aliases are two variables that refer to the same object. * Put the output in the text block below ```text -PUT ANSWER TO #2 HERE +(5, 8) ``` 3. At the end of main, are p1 and p2 aliased? Why or why not? * Put your answer in the text block below ```text -PUT ANSWER TO #3 HERE +No, they refer to different objects ``` ```java @@ -142,7 +142,7 @@ for (int i = 0; i < s.length(); i++) { * Screenshot your output and add it to your project as Part3_2.jpg 3. Generalize the code so that it works on any string. * What could you do to generalize it more? - +Make it handle things like brackets and curly braces ## Part 4: Large Numbers Many encryption algorithms depend on the ability to raise large integers to a power. Below is a method that implements an efficient algorithm for integer exponentiation: diff --git a/src/BigIntRewrite.java b/src/BigIntRewrite.java index 8f0dfce..e89a33e 100644 --- a/src/BigIntRewrite.java +++ b/src/BigIntRewrite.java @@ -1,5 +1,19 @@ +import java.math.BigInteger; + public class BigIntRewrite { - public static void main(String[] args) { + public static BigInteger pow(int x, int n) { + if (n == 0) { + return BigInteger.ONE; + } + BigInteger result = BigInteger.valueOf(x); + BigInteger power = BigInteger.valueOf(n); + return result.pow(n); + } + public static void main(String[] args) { + int x = 44564; + int n = 123423; + BigInteger result = pow(x, n); + System.out.println(x + " raised to the power of " + n + " is: " + result); } } diff --git a/src/Part1_2.png b/src/Part1_2.png new file mode 100644 index 0000000000000000000000000000000000000000..2fefa7be2607dcc194efc6ecd76878e40a12caed GIT binary patch literal 7743 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 Lv8lJZb?<)wmhq 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 literal 0 HcmV?d00001 diff --git a/src/StringPlayground.java b/src/StringPlayground.java index a930a71..3324fee 100644 --- a/src/StringPlayground.java +++ b/src/StringPlayground.java @@ -1,4 +1,18 @@ public class StringPlayground { + public static int countParentheses(String s) { + int count = 0; + for (char c : s.toCharArray()) { + if (c == '(') { count++; } + else if (c == ')') { count--; } + } + return count; + } + public static void main(String[] args) { + String[] testStrings = {"((3 + 7) * 2)", "(()(()))", "((()))("}; + + for (String s : testStrings) { + System.out.println("Count for \"" + s + "\": " + countParentheses(s)); + } } -} \ No newline at end of file +}