diff --git a/Conversions/DecimalToAnyBase.java b/Conversions/DecimalToAnyBase.java new file mode 100644 index 000000000..d3927ff8d --- /dev/null +++ b/Conversions/DecimalToAnyBase.java @@ -0,0 +1,65 @@ +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.util.ArrayList; + +/** + * + * @author Varun Upadhyay (https://github.com/varunu28) + * + */ + +// Driver Program +public class DecimalToAnyBase { + public static void main (String[] args) throws Exception{ + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + System.out.println("Enter the decimal input below: "); + int decInput = Integer.parseInt(br.readLine()); + System.out.println(); + + System.out.println("Enter the base below: "); + int base = Integer.parseInt(br.readLine()); + System.out.println(); + + System.out.println("Decimal Input" + " is: " + decInput); + System.out.println("Value of " + decInput + " in base " + base + " is: " + convertToAnyBase(decInput, base)); + + br.close(); + } + + /** + * This method produces a String value of any given input decimal in any base + * @param inp Decimal of which we need the value in base in String format + * @return string format of the converted value in the given base + */ + + public static String convertToAnyBase(int inp, int base) { + ArrayList charArr = new ArrayList<>(); + + while (inp > 0) { + charArr.add(reVal(inp%base)); + inp /= base; + } + + StringBuilder str = new StringBuilder(charArr.size()); + + for(Character ch: charArr) + { + str.append(ch); + } + + return str.reverse().toString(); + } + + /** + * This method produces character value of the input integer and returns it + * @param num integer of which we need the character value of + * @return character value of input integer + */ + + public static char reVal(int num) { + if (num >= 0 && num <= 9) + return (char)(num + '0'); + else + return (char)(num - 10 + 'A'); + } +} diff --git a/Searches/LinearSearch.java b/Searches/LinearSearch.java index 0a1bb7cc5..6c5322520 100644 --- a/Searches/LinearSearch.java +++ b/Searches/LinearSearch.java @@ -1,62 +1,77 @@ -import java.util.Scanner; +import java.io.BufferedReader; +import java.io.InputStreamReader; + +/** + * + * @author Varun Upadhyay (https://github.com/varunu28) + * + */ public class LinearSearch{ - /** - * The main method - * @param args Command line arguments - */ - public static void main(String[] args){ + /** + * The main method + * @param args Command line arguments + */ + public static void main(String[] args) throws Exception { - Scanner input = new Scanner(System.in); - int[] myArray; - int size = 0; + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - //Prompt user to create array and its elements - System.out.print("Enter the array size: "); - size = input.nextInt(); - myArray = new int[size]; - for (int i = 0; i < size; i++){ - System.out.print("For index " + i + ", enter an integer: "); - myArray[i] = input.nextInt(); - } + // Test for Integer inputs + Integer[] myArray; + int size = 0; - //Prompt user to search for particular element - System.out.print("Enter integer to search for: "); - int key = input.nextInt(); + //Prompt user to create array and its elements + System.out.print("Enter the array size: "); + size = Integer.parseInt(br.readLine()); + myArray = new Integer[size]; + for (int i = 0; i < size; i++){ + System.out.print("For index " + i + ", enter an integer: "); + myArray[i] = Integer.parseInt(br.readLine()); + } - //Output array and index of target element, if found - printarray(myArray); - System.out.printf("The integer %d is found in index %d\n", key, linearsearch(myArray, key)); - - input.close(); - } + //Prompt user to search for particular element + System.out.print("Enter integer to search for: "); + Integer key = Integer.parseInt(br.readLine()); - /** - * Linear search method - * - * @param list List to be searched - * @param key Key being searched for - * @return Location of the key - */ - public static int linearsearch(int[] list, int key){ + //Output array and index of target element, if found + System.out.printf("The integer %d is found in index %d\n", key, linearSearch(myArray, key)); - for (int i = 0; i< list.length; i++){ - if (list[i] == key){ - return i; - } - - } return -1; - } - /** - * Helper Method - * - * @param a array to be printed - */ - public static void printarray(int[] a){ - System.out.print("The array is: "); - for( int d: a){ - System.out.print(d+" "); - } - System.out.println(); - } + // Test for String inputs + String[] myArray1; + int size1 = 0; + + //Prompt user to create array and its elements + System.out.print("Enter the array size: "); + size1 = Integer.parseInt(br.readLine()); + myArray1 = new String[size]; + for (int i = 0; i < size1; i++){ + System.out.print("For index " + i + ", enter a String: "); + myArray1[i] = br.readLine(); + } + + //Prompt user to search for particular element + System.out.print("Enter String to search for: "); + String key1 = br.readLine(); + + //Output array and index of target element, if found + System.out.printf("The string %s is found in index %d\n", key1, linearSearch(myArray1, key1)); + } + + /** + * Generic Linear search method + * + * @param array List to be searched + * @param value Key being searched for + * @return Location of the key + */ + public static > int linearSearch(T[] array, T value) { + int lo = 0; + int hi = array.length - 1; + for (int i = lo; i <= hi; i++) { + if (array[i].compareTo(value) == 0) { + return i; + } + } + return -1; + } }