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;
}
}
}
반응형