본문 바로가기
프로그래밍/알고리즘

알고리즘 - 대칭수 찾기 !

by 개발하는군인 2020. 3. 7.

문제 : 10진수 2진수 8진수 어느 진수의 형태든  대칭수인 수 찾기 문제 !!

  

 숫자 N(대칭수)에 대해 10진수 2진수 8진수  3가지 형태를 전부 만족하는 숫자를 찾는 문제이다.

 

  예 )  앞에서 부터 부르던  뒤에서 부터 부르던  똑같은  "이효리"

         12321  11011

 

 

 

 

 

문제해결:  1. 10진수 비교 리버싱 문자열 

              2. 10진수->2진수  비교  리버싱 문자열

              3. 10진수->8진수  비교  리버싱 문자열

 

위 3가지 조건이 전부 참인경우의 수를 구하면 되는 문제이다 . 

 

 

 

 

정답코드 : 

 

 

using System; 

namespace 콘솔앱 
{ 

    class 콘솔앱 
    { 
        public static string reverse_string(string a) 
        { 
            System.Text.StringBuilder test = new System.Text.StringBuilder(); 
            char[] c = new char[a.Length]; 
            string t=null; 
            for (int i = 0 ; i <a.Length; i++) 
            { 
                test.Append(a[a.Length - i - 1]); 
            } 
            return test.ToString(); 
        } 

        static void Main(string[] args) 
        { 
            string a; 
            string b; 
            string c; 
            int temp = 0; 
            for (int i = 11; i < 10000; i += 2) 
            {

                // 변수 i에 대하여  10진수, 8진수, 2진수를 문자열 형태로 구한다.

                // C# 은 컨버트 클래스를 활용해 변환 할수있다.

                // 첫번째 매개변수는  변환할값 이고  2번째 매개변수는 변환할 type이다.

 
                a = i.ToString(); 
                b = Convert.ToString(i,2);                
                c = Convert.ToString(i, 8); 
                if (a==reverse_string(a)&&b==reverse_string(b)&&c==reverse_string(c)) 
                { 
                    Console.WriteLine(i); 
                } 
            } 
        } 
    } 
}

 

 

정답 : 585