diff --git a/src/Kviz2.java b/src/Kviz2.java new file mode 100644 index 0000000..60e9ec8 --- /dev/null +++ b/src/Kviz2.java @@ -0,0 +1,244 @@ +public class Kviz2 { + + static int vsotaStevk(String str) { + int sum = 0; + for (char c : str.toCharArray()) { + if (Character.isDigit(c)) { + sum += Character.getNumericValue(c); + } + } + return sum; + } + + static boolean preveriRep(String a, String b) { + return a.toLowerCase().endsWith(b.toLowerCase()) || + b.toLowerCase().endsWith(a.toLowerCase()); + } + + static int[] range(int a, int b, int c) { + int[] range = new int[(b - a) / c]; + for (int i = 0; i < range.length; i++) { + range[i] = a + i * c; + } + return range; + } + + static void rotiraj(int[] tabela, int k) { + int n = (k / tabela.length) * tabela.length + tabela.length; + int[] copy = new int[tabela.length]; + for (int i = 0; i < tabela.length; i++) { + copy[(n + i - k) % tabela.length] = tabela[i]; + } + System.arraycopy(copy, 0, tabela, 0, tabela.length); + } + + static int[] duplikati(int[] tabela) { + int[] copy = new int[tabela.length]; + int n = 0; + for (int i = 0; i < tabela.length; i++) { + boolean found = false; + for (int j = 0; j < n; j++) { + if (copy[j] == tabela[i]) { + found = true; + break; + } + } + if (!found) { + copy[n++] = tabela[i]; + } + } + int[] result = new int[n]; + System.arraycopy(copy, 0, result, 0, n); + return result; + } + + static double koren(int x, int d) { + double prev = 0d; + double c = 0; + for (int i = 0; i <= d; i++) { + for (c = prev; ; c += 1 / Math.pow(10, i)) { + if ((c + 1 / Math.pow(10, i)) * (c + 1 / Math.pow(10, i)) > x) { + prev = c; + break; + } + } + } + return c; + } + + static String binarnoSestej(String s, String b) { + int carry = 0; + StringBuilder result = new StringBuilder(); + for (int i = s.length() - 1, j = b.length() - 1; i >= 0 || j >= 0; i--, j--) { + int sum = carry; + if (i >= 0) { + sum += s.charAt(i) - '0'; + } + if (j >= 0) { + sum += b.charAt(j) - '0'; + } + result.append(sum % 2); + carry = sum / 2; + } + if (carry != 0) { + result.append(carry); + } + return result.reverse().toString(); + } + + static int vsotaSkupnihCifer(int a, int b) { + int[] digits = new int[10]; + while (a > 0) { + digits[a % 10]++; + a /= 10; + } + int sum = 0; + while (b > 0) { + if (digits[b % 10] > 0) { + sum += b % 10; + digits[b % 10] = 0; + } + b /= 10; + } + return sum; + } + + static boolean jePapajscina(String niz) { + niz = niz.toLowerCase(); + for (int i = 0; i < niz.length(); i++) { + if (((niz.charAt(Math.max(0, i - 1)) != 'p' && + niz.charAt(i) == 'a') || + niz.charAt(i) == 'e' || + niz.charAt(i) == 'i' || + niz.charAt(i) == 'o' || + niz.charAt(i) == 'u') && + (niz.charAt(Math.min(niz.length() - 1, i + 1)) != 'p' || + niz.charAt(Math.min(niz.length() - 1, i + 2)) != 'a')) + return false; + } + return true; + } + + static String prevod(String niz) { + String out = ""; + if (jePapajscina(niz)) { + for (int i = 0; i < niz.length(); i++) { + out += niz.charAt(i); + if (niz.charAt(i) == 'a' || + niz.charAt(i) == 'e' || + niz.charAt(i) == 'i' || + niz.charAt(i) == 'o') { + i += 2; + } + } + } else { + for (int i = 0; i < niz.length(); i++) { + out += niz.charAt(i); + if (niz.charAt(i) == 'a' || + niz.charAt(i) == 'e' || + niz.charAt(i) == 'i' || + niz.charAt(i) == 'o') { + out += "pa"; + } + + } + } + return out; + } + + static String prepleti(String niz1, String niz2) { + StringBuilder output = new StringBuilder(); + for (int i = 0; i < Math.max(niz1.length(), niz2.length()); i++) { + output.append(niz1.length() > i ? niz1.charAt(i) : " "); + output.append(niz2.length() > i ? niz2.charAt(i) : " "); + } + return output.toString(); + } + + static void odpleti(String niz) { + StringBuilder niz1 = new StringBuilder(); + StringBuilder niz2 = new StringBuilder(); + for (int i = 0; i < niz.length(); i += 2) { + niz1.append(niz.charAt(i)); + niz2.append(i + 1 < niz.length() ? niz.charAt(i + 1) : ""); + } + System.out.println(niz1); + System.out.println(niz2); + } + + static String vMorse(String niz) { + String[] abeceda = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.." }; + String[] stevilke = {"-----", ".----", "..---", "...--", "....-", ".....", "-....", "--...", "---..", "----." }; + niz = niz.toUpperCase(); + StringBuilder output = new StringBuilder(); + for (int i = 0; i < niz.length(); i++) { + switch (niz.charAt(i)) { + case ' ': + output.append(" "); + break; + case '.': + output.append(".-.-.- "); + break; + case ',': + output.append("--..-- "); + break; + case '!': + output.append("-.-.-- "); + break; + case ':': + output.append("---... "); + break; + case ';': + output.append("-.-.-. "); + break; + case '?': + output.append("..--.. "); + break; + default: + if (Character.isDigit(niz.charAt(i))) { + output.append(stevilke[niz.charAt(i) - '0']).append(" "); + } else { + output.append(abeceda[niz.charAt(i) - 'A']).append(" "); + } + } + } + return output.toString().trim(); + } + + static int fibo(int n) { + int[][] arr = new int[n][n]; + int prev = 1; + int curr = 1; + for (int i = 0; i < n; i++) { + for (int j = 0; j < n; j++) { + arr[i][j] = prev; + int tmp = curr; + curr += prev; + prev = tmp; + } + } + int sum = 0; + + for (int i = 0; i < n; i++) { + sum += arr[i][i] + arr[i][n - i - 1]; + } + return sum; + } + + static int binomi(int n, int k) { + if ((n == k) || (k == 0)) + return 1; + else + return binomi(n - 1, k) + binomi(n - 1, k - 1); + } + + int[] pascal(int n) { + int[] vrstica = new int[n]; + + for (int r = 0; r < n; r++) { + vrstica[r] = binomi(n - 1, r); + } + return vrstica; + } + +}