Add implementations for Exponentiation, Fibonacci, Quicksort, CrossTotal, Palindrome, and RomanNumber classes
This commit is contained in:
parent
beda36149d
commit
5f7a036bad
6 changed files with 174 additions and 0 deletions
16
src/de/dhbwka/java/exercise/methods/Exponentiation.java
Normal file
16
src/de/dhbwka/java/exercise/methods/Exponentiation.java
Normal file
|
@ -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));
|
||||
}
|
||||
}
|
17
src/de/dhbwka/java/exercise/methods/Fibonacci.java
Normal file
17
src/de/dhbwka/java/exercise/methods/Fibonacci.java
Normal file
|
@ -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));
|
||||
}
|
||||
}
|
||||
}
|
51
src/de/dhbwka/java/exercise/methods/Quicksort.java
Normal file
51
src/de/dhbwka/java/exercise/methods/Quicksort.java
Normal file
|
@ -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));
|
||||
}
|
||||
}
|
19
src/de/dhbwka/java/exercise/strings/CrossTotal.java
Normal file
19
src/de/dhbwka/java/exercise/strings/CrossTotal.java
Normal file
|
@ -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"));
|
||||
}
|
||||
}
|
23
src/de/dhbwka/java/exercise/strings/Palindrome.java
Normal file
23
src/de/dhbwka/java/exercise/strings/Palindrome.java
Normal file
|
@ -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"));
|
||||
}
|
||||
}
|
48
src/de/dhbwka/java/exercise/strings/RomanNumber.java
Normal file
48
src/de/dhbwka/java/exercise/strings/RomanNumber.java
Normal file
|
@ -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"));
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue