C#/C# 코딩테스트

[BOJ] 백준 1009번 분산처리

개발자엄지희 2023. 4. 17. 23:36
반응형

내가 쓴 코드 ... 왜 틀렸는지 모르겠다.

class Program
{
    static void Main(string[] args)
    {
        string sT = Console.ReadLine();
        int T = Convert.ToInt32(sT);

        int[] output = new int[T];

        for (int i = 0; i < T; i++)
        {
            string[] str_input = Console.ReadLine().Split('\x020');
            int[] input = Array.ConvertAll(str_input, s => int.Parse(s));

            int result = input[0];
            int[] n = new int[10];
            int length = 1;
            n[0] = input[0];
            for (int j = 1; j <= 9; j++)
            {
                result *= input[0];
                result %= 10;
                length = j;
                if (result == input[0]) break;
                n[j] = result;
            }

            int index = input[1] % length;
            if (index == 0)
                index = length;
            index--;
            output[i] = n[index];
        }


        for (int i = 0; i < T; i++)
        {
            Console.WriteLine(output[i]);
        }
    }
}

 

다른 분이 쓴 코드... 더 가독성있고 정답이다.

class Program
{
    static void Main(string[] args)
    {
        int casenum = int.Parse(Console.ReadLine());
        while (casenum > 0) {
            string[] cases = Console.ReadLine().Split(' ');
            int a = int.Parse(cases[0]);
            int b = int.Parse(cases[1]);
            if (b%4 == 0) {
                a = (a * a * a * a) % 10;
            }
            else if (b%4 == 3) {
                a = (a * a * a) % 10;
            }
            else if (b%4 == 2) {
                a = (a * a) % 10;
            }
            else {
                a %= 10;
            }
            if (a == 0) {
                a = 10;
            }
            Console.WriteLine("{0}" ,a);
            casenum -= 1;
        }
    }
}
반응형