求T T的個位數

2021-09-01 20:06:01 字數 2004 閱讀 1504

border="0" width="0" height="0" src="">

求t^t的個位數

description

這個很像乙個流淚的表情是不是!其實,它是t的t次方啦~。當t比較大的時候t^t會非常大,現在只要你求這個數的個位就可以啦!

input

輸入包括多組測試資料,每個測試資料只有乙個數字t(0首先,這個題肯定不能暴力啊

try:

while 1:

n=int(input())

b=n%4

while n>10:#其實這一行一點必要都沒有。。當時的我竟然沒有理解%10是啥東東來著!!!我的媽呀。。沒救了

n=n%10

if n==0 or n==1 or n==5 or n==6 or n==9: #n==9是後來寫的。開始沒有注意到。。

print(n)

elif n==2:

l=[6,2,4,8]

print(l[b])

elif n==3:

m=[1,3,9,7]

print(m[b])

elif n==4:

n=[6,4,6,4]

print(n[b])

elif n==7:

k=[1,7,9,3]

print(k[b])

elif n==8:

o=[6,8,4,2]

print(o[b])

#elif n==9: 後來仔細想了一下,n==9的時候,奇數對4取餘,肯定是奇數,也就是只能取到p[1],p[3],

#p=[1,9,1,9] 然而p[1],p[3]開始恰好寫的9,就這樣ac了~~其實是不對的

#print(p[b]) 9的奇數次方個位數一定是9,9的偶數次方個位數一定是1,但這道題9的9次方,只有9這種情況。。

except eoferror:

pass

取乙個數的個位數就是n%10啊!!我當時想啥呢555~

當然了以後不能總是依賴python。所以我就按照這個思路轉了個c。。

#includeint main()

; printf("%d\n",i[n*4+b]);

}return 0;

}

後來我看了看大佬們的**:**實在是優秀啊!

後來提交的ac的**

try:

while 1:

a=int(input())

b=a%4

if b==0:

b=4print(((a%10)**b)%10)

except eoferror:

pass

思路就是這樣的,用c的話,直接轉過去就行了。。

當然這道題也可以用快速冪的啦

毛學姐的快速冪**:

def mi(a,b):

a %= 10

res = 1

while b!=0:

if b & 1: # 意思就是:取2進製的最末位

res=res * a % 10

b >>= 1 #意思就是: b=b//2

a = a * a % 10

return res

try:

while 1:

n=int(input())

print(mi(n,n))

except eoferror:

pass

個人總結。剛開始寫部落格啥的沒啥經驗,有建議的大佬們私聊啊

T T問題求個位數(快速冪 位運算 找規律)

t t這個很像乙個流淚的表情是不是!其實,它是t的t次方啦 當t比較大的時候t t會非常大,現在只要你求這個數的個位就可以啦!輸入包括多組測試資料,每個測試資料只有乙個數字 看到只取個位數,第一反應找規律,末尾數相當於是乙個迴圈,只要找 出迴圈規律即可,簡單粗暴。try while 1 n inpu...

個位數統計

時間限制 100 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 給定乙個k位整數n dk 1 10k 1 d1 101 d0 0 di 9,i 0,k 1,dk 1 0 請編寫程式統計每種不同的個位數字出現的次數。例如 給定n 100...

個位數統計

時間限制 100 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 給定乙個k位整數n dk 1 10k 1 d1 101 d0 0 di 9,i 0,k 1,dk 1 0 請編寫程式統計每種不同的個位數字出現的次數。例如 給定n 100...