본문 바로가기
C#

C# 대칭수(회문수 - Palindromic number ) 인지 확인하는 소스

by 샤나엘 2020. 10. 26.
반응형

안녕하세요.

 

대칭수 ( 회문수 ) 란 121, 13331, 132231 등 과 같이 앞에서 읽으나, 뒤에서 읽으나 값이 같은 숫자를 뜻합니다.

 

C#으로 특정 값을 입력받고, 입력 받은 값이 대칭수인지 판별하는 프로그램을 작성해보았습니다.

 

코드는 아래와 같습니다.

 

 

using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("값을 입력하세요.");
            string value = Console.ReadLine();

            bool isPalindromicNumber = true;
            
            for (int i = 0; i < value.Length / 2; i++)
            {
                //대칭수 인지 판단
                //앞 뒤로 하나씩 값이 같은지 비교
                if (value[i] != value[value.Length -1 -i] )
                {
                    isPalindromicNumber = false;
                    break;
                }
            }

            Console.WriteLine(string.Format("{0}은 대칭수가 {1}", value.ToString(), isPalindromicNumber ? "맞습니다." : "아닙니다."));
        }
    }
}

 

실행결과는 아래와 같습니다.

 

 

대칭수인지 판별하는 부분은 아래 부분인데,

맨 앞 글자와 맨 뒤 글자를 불러와 비교하고, 같으면 두번째 글자와 맨 뒤에서 두번째 글자를 불러와 비교하면서 같은지 다른지 판별합니다. 입력받은 값의 길이의 반 만큼(소수점은 버림처리) 비교해서 같은지 다른지 확인하면 대칭수인지 판별 할 수 있습니다.

            for (int i = 0; i < value.Length / 2; i++)
            {
                //대칭수 인지 판단
                //앞 뒤로 하나씩 값이 같은지 비교
                if (value[i] != value[value.Length -1 -i] )
                {
                    isPalindromicNumber = false;
                    break;
                }
            }

 

반응형

댓글