2024年11月15日 星期五

2024-11-15 測驗參考答案

 #Q1

d = '5/6 + 7/8'

a,b = d.split('+')

au,ad =map(int, a.split('/'))

bu,bd =map(int, b.split('/'))


cu = au*bd + bu*ad

cd = ad*bd


gcd = 1

for i in range(2,cd+1):

  if cu%i==0 and cd%i==0:

    gcd = i


print(d.replace('/',' / '),'=',int(cu/gcd),'/',int(cd/gcd))

print()


#Q2

for n in range(10):

  dd = 'B12345678'+str(n)

  d2 = 'ABCDEFGHJKLMNPQRSTUVXYWZIO'.index(dd[0])+10

  

  x1 = d2//10

  x2 = d2%10

  

  d = [int(i) for i in dd[1:]]

  d = [0] + d

  y = x1 + 9 * x2

  k = 8

  for i in range(1,7+1):

    y = y + k*d[i]

    k-=1

  y = y + d[8]+d[9]

  msg = 'OK'

  if not(y%10==0):

    msg = 'CHECK SUM ERROR'

  print(f'{dd:15} {msg:<10} ')

Output:

5 / 6 + 7 / 8 = 41 / 24

B123456780      OK         
B123456781      CHECK SUM ERROR 
B123456782      CHECK SUM ERROR 
B123456783      CHECK SUM ERROR 
B123456784      CHECK SUM ERROR 
B123456785      CHECK SUM ERROR 
B123456786      CHECK SUM ERROR 
B123456787      CHECK SUM ERROR 
B123456788      CHECK SUM ERROR 
B123456789      CHECK SUM ERROR 

沒有留言:

張貼留言