프로그래밍을 처음하면서도이 문제를 염두에두고 있습니다.스택을 사용하여 정수를 2 진수로 변환
스택에 일부 remainders를 푸시하고 스택을 팝하여 이진수로 출력합니다.
import java.util.Stack;
public class BinaryNumber {
private static Stack<Integer> stack = new Stack<Integer>();
private static int remainder;
public static String binaryNum(int number){
while (number > 0){ //while number > 0
if ((number % 2 != 1) && (number % 2 != 0)){ //if number is not equal to zero or 1
number = (number-1); //update number to one less
int remainder = 1;
}
else{
int remainder = number % 2; //get the remainder
}
stack.push(new Integer(remainder));
number /= 2;
}
stack.push(new Integer(1));
return "hello".toString(); //just a test
}
public static void printStack(){
while (!stack.isEmpty()){
stack.pop();
}
}
public static void main(String[]args){
binaryNum(20);
printStack();
}
}
출력이없는 것 같습니다. 나는 종이에서 문제를 해결하려고 노력했지만 실패한 부분을 파악할 수 없다. 나는 거기에 이전에 println 문을 가지고 있었고, 내 원래의 if 문이 binaryNum
에 항상 불려지는 것처럼 보였습니까?
감사합니다.
((번호 % 2 = 1) && (번호 % 2 = 0)!!) 경우 - 이해되지 않는다. 2로 나눈 나머지는 항상 0 또는 1입니다. –
고맙습니다. 모듈러스 연산자가 실제로 제공하는 것에 대해 조금 혼란스러워졌습니다. – user3519261