#include <stdio.h>
int T = 0;int a = 0;int b = 0;
int Math(int Number) // Number는 나눈 나머지가 1이 될 때의 수{ int Count = b % Number; // b를 Number로 나눈 나머지를 Count 에 대입 int Data = 1; int i = 0;
for (i = 0; i < Count; ++i) { Data = Data * a; if (Data > 10) Data = Data % 10; }
return Data;}
int LastData(){ int lastData = a; int i = 0; int Number = 1; int N = 0;
for (i = 1; i < b; ++i) { lastData = lastData * a; if (lastData > 10) { lastData = lastData % 10; if (lastData == 1) { N = 1; Number = i + 1; break; } } }
if (N == 1) // 나눠서 1이 나왔을 경우에는 Math 함수 수행 lastData = Math(Number);
return lastData; // 안나왔을 경우에는 바로 lastData 값 return}
void aCheck(){ while (a >= 100 || a < 1) scanf("%d", &a);}
void bCheck(){ while (b >= 1000000 || b < 1) scanf("%d", &b);}
int main(void){ int Index = 0;
scanf("%d", &T);
while (Index < T) { scanf("%d %d", &a, &b); aCheck(); bCheck();
printf("%d\n", LastData());
++Index; }
return 0;}
LastData 함수에서 a^b 에서 나눈 나머지가 1 이 될 때의 b 값을 Number에 대입하여 Math 함수에서 b를 Number로 나눈 나머지를 구한 후 그 횟수 만큼 곱하고 10으로 나눈 나머지를 구하는 로직인데 어느 부분에서 잘못됬는지 잘 이해가 가지않는데 좀 도와주세요...ㅠ
댓글을 작성하려면 로그인해야 합니다.
whdtjq0101 5년 전
#include <stdio.h>
int T = 0;
int a = 0;
int b = 0;
int Math(int Number) // Number는 나눈 나머지가 1이 될 때의 수
{
int Count = b % Number; // b를 Number로 나눈 나머지를 Count 에 대입
int Data = 1;
int i = 0;
for (i = 0; i < Count; ++i)
{
Data = Data * a;
if (Data > 10)
Data = Data % 10;
}
return Data;
}
int LastData()
{
int lastData = a;
int i = 0;
int Number = 1;
int N = 0;
for (i = 1; i < b; ++i)
{
lastData = lastData * a;
if (lastData > 10)
{
lastData = lastData % 10;
if (lastData == 1)
{
N = 1;
Number = i + 1;
break;
}
}
}
if (N == 1) // 나눠서 1이 나왔을 경우에는 Math 함수 수행
lastData = Math(Number);
return lastData; // 안나왔을 경우에는 바로 lastData 값 return
}
void aCheck()
{
while (a >= 100 || a < 1)
scanf("%d", &a);
}
void bCheck()
{
while (b >= 1000000 || b < 1)
scanf("%d", &b);
}
int main(void)
{
int Index = 0;
scanf("%d", &T);
while (Index < T)
{
scanf("%d %d", &a, &b);
aCheck();
bCheck();
printf("%d\n", LastData());
++Index;
}
return 0;
}
LastData 함수에서 a^b 에서 나눈 나머지가 1 이 될 때의 b 값을 Number에 대입하여 Math 함수에서 b를 Number로 나눈 나머지를 구한 후 그 횟수 만큼 곱하고 10으로 나눈 나머지를 구하는 로직인데 어느 부분에서 잘못됬는지 잘 이해가 가지않는데 좀 도와주세요...ㅠ