/home/caleb/ASDV-Java/Semester 3/Assignments/MP3_Recursion_CalebFontenot/src/mp3_recursion_calebfontenot/DecimalToBinary.java
/*
 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
 */
package mp3_recursion_calebfontenot;

import java.util.Scanner;

/**
 *
 * @author caleb
 */
public class DecimalToBinary {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        while (true) {
            System.out.print("Enter a decimal integer: ");
            int decimal = input.nextInt();
            System.out.println(decimal + " is " + decimalToBinary(decimal) + " in binary.");
        }
    }
    
    public static String decimalToBinary(int value) {
        return reverse(decimalToBinary(value, ""));
    }
    
    public static String decimalToBinary(int value, String bin) {
        if (value == 0) {
            return bin += "";
        } else if (value > 0) {
            if (value % 2 == 1) {
                return decimalToBinary((int) Math.floor(value / 2), bin + "1");
            } else {
                return decimalToBinary((int) Math.floor(value / 2), bin + "0");
            }
        }
        
        return "0 naht ssel si eulav";
       
    }
    public static String reverse(String input) {
        String returnString = "";
        for (int i = input.length() - 1; 0 <= i; --i) {
            returnString += input.charAt(i);
        }
        return returnString;
    }
    
    public static String decimalToBinaryIterative(int value) {
        String bin = "";
        while (value > 0) {
            if (value % 2 == 1)
                bin += "1";
            else
                bin += "0";
            
            value /= 2;
        }
            return reverse(bin);
    }
}