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...