본문 바로가기

개발하자/JAVA문제풀이

2진회귀수 문제

문제)10 진수 n 의 이진수가 회귀수이면 이 수 n 을 이진 회귀수라 하자.
21 은 10 진수로 회귀수가 아니지만 , 2 진수로는 회귀수이다.(10101)
1 에서 100 000 사이에 있는 이진 회귀수를 모두 출력하라.


class Main{
 public static void main(String[] args){
  for(int num=1;num<100000;num++){
   String temp="";                                      //뒤집어서 담을 변수 초기값 설정
    
    String a=Integer.toBinaryString(num);     //입력값을 2진수로 변환해서 길이를 구하기위해 String으로 변환
    for(int i=a.length()-1;i>=0;i--){              //이진수의 길이만큼 거꾸로 반복
       temp+=a.charAt(i);                           //숫자 뒤집어서 담기 
    }
   if(Long.parseLong(a)==Long.parseLong(temp)){
   System.out.println(num);

}
  }
 }
}