diff --git a/src/de/dhbwka/java/exercise/methods/Exponentiation.java b/src/de/dhbwka/java/exercise/methods/Exponentiation.java new file mode 100644 index 0000000..979d248 --- /dev/null +++ b/src/de/dhbwka/java/exercise/methods/Exponentiation.java @@ -0,0 +1,16 @@ +package de.dhbwka.java.exercise.methods; + +public class Exponentiation { + public static double xPowerN(double x, int n) { + if (n == 0) + return 1; + if (n > 0) + return x * xPowerN(x, n - 1); + return 1 / xPowerN(x, -n); + } + + public static void main(String[] args) { + System.out.println(xPowerN(2, 3)); + System.out.println(xPowerN(2, -3)); + } +} diff --git a/src/de/dhbwka/java/exercise/methods/Fibonacci.java b/src/de/dhbwka/java/exercise/methods/Fibonacci.java new file mode 100644 index 0000000..beb1f0c --- /dev/null +++ b/src/de/dhbwka/java/exercise/methods/Fibonacci.java @@ -0,0 +1,17 @@ +package de.dhbwka.java.exercise.methods; + +public class Fibonacci { + public static long fib(int n) { + if (n == 0) + return 0; + if (n == 1) + return 1; + return fib(n - 1) + fib(n - 2); + } + + public static void main(String[] args) { + for (int i = 0; i < 10; i++) { + System.out.println(fib(i)); + } + } +} diff --git a/src/de/dhbwka/java/exercise/methods/Quicksort.java b/src/de/dhbwka/java/exercise/methods/Quicksort.java new file mode 100644 index 0000000..a037e6e --- /dev/null +++ b/src/de/dhbwka/java/exercise/methods/Quicksort.java @@ -0,0 +1,51 @@ +package de.dhbwka.java.exercise.methods; + +import java.util.Arrays; + +public class Quicksort { + public static void sort(int[] array) { + quicksort(array, 0, array.length - 1); + } + + public static void quicksort(int[] array, int left, int right) { + if (left < right) { + int pivot = partition(array, left, right); + quicksort(array, left, pivot - 1); + quicksort(array, pivot + 1, right); + } + } + + public static int partition(int[] array, int left, int right) { + int i = left; + int j = right - 1; + int pivot = array[right]; + + do { + while (array[i] <= pivot && i < right) { + i++; + } + while (array[j] >= pivot && j > left) { + j--; + } + if (i < j) { + int temp = array[i]; + array[i] = array[j]; + array[j] = temp; + } + } while (i < j); + + if (array[i] > pivot) { + int temp = array[i]; + array[i] = pivot; + array[right] = temp; + } + + return i; + } + + public static void main(String[] args) { + int[] array = { 3, 6, 8, 10, 1, 2, 1 }; + sort(array); + System.out.print("Sorted array: " + Arrays.toString(array)); + } +} diff --git a/src/de/dhbwka/java/exercise/strings/CrossTotal.java b/src/de/dhbwka/java/exercise/strings/CrossTotal.java new file mode 100644 index 0000000..f42f9f8 --- /dev/null +++ b/src/de/dhbwka/java/exercise/strings/CrossTotal.java @@ -0,0 +1,19 @@ +package de.dhbwka.java.exercise.strings; + +public class CrossTotal { + public static int crossTotal(String number) { + int sum = 0; + for (int i = 0; i < number.length(); i++) { + char c = number.charAt(i); + if (c >= '0' && c <= '9') { + sum += c - '0'; + } + } + return sum; + } + + public static void main(String[] args) { + System.out.println(crossTotal("12345")); + System.out.println(crossTotal("1a2b3c4d5e")); + } +} diff --git a/src/de/dhbwka/java/exercise/strings/Palindrome.java b/src/de/dhbwka/java/exercise/strings/Palindrome.java new file mode 100644 index 0000000..be70a02 --- /dev/null +++ b/src/de/dhbwka/java/exercise/strings/Palindrome.java @@ -0,0 +1,23 @@ +package de.dhbwka.java.exercise.strings; + +public class Palindrome { + public static String reverse(String s) { + String reversed = ""; + for (int i = s.length() - 1; i >= 0; i--) { + reversed += s.charAt(i); + } + return reversed; + } + + public static boolean isPalindrome(String s) { + return s.equals(reverse(s)); + } + + public static void main(String[] args) { + System.out.println(isPalindrome("anna")); + System.out.println(isPalindrome("otto")); + System.out.println(isPalindrome("lagerregal")); + System.out.println(isPalindrome("rentner")); + System.out.println(isPalindrome("hallo")); + } +} diff --git a/src/de/dhbwka/java/exercise/strings/RomanNumber.java b/src/de/dhbwka/java/exercise/strings/RomanNumber.java new file mode 100644 index 0000000..74ba2dd --- /dev/null +++ b/src/de/dhbwka/java/exercise/strings/RomanNumber.java @@ -0,0 +1,48 @@ +package de.dhbwka.java.exercise.strings; + +public class RomanNumber { + public static int romanToInt(String roman) { + roman = roman.replaceAll("IV", "IIII").replaceAll("IX", "VIIII").replaceAll("XL", "XXXX").replaceAll("XC", "LXXXX") + .replaceAll("CD", "CCCC").replaceAll("CM", "DCCCC"); + + int sum = 0; + for (int i = 0; i < roman.length(); i++) { + char c = roman.charAt(i); + switch (c) { + case 'I': + sum += 1; + break; + case 'V': + sum += 5; + break; + case 'X': + sum += 10; + break; + case 'L': + sum += 50; + break; + case 'C': + sum += 100; + break; + case 'D': + sum += 500; + break; + case 'M': + sum += 1000; + break; + } + } + return sum; + } + + public static void main(String[] args) { + System.out.println(romanToInt("I")); + System.out.println(romanToInt("II")); + System.out.println(romanToInt("III")); + System.out.println(romanToInt("IV")); + System.out.println(romanToInt("V")); + System.out.println(romanToInt("VI")); + System.out.println(romanToInt("MCMXCIV")); + System.out.println(romanToInt("MMXXI")); + } +}