總網頁瀏覽量

73103
顯示具有 2018.6月APCS實作題 標籤的文章。 顯示所有文章
顯示具有 2018.6月APCS實作題 標籤的文章。 顯示所有文章

2019年4月24日 星期三

2018.6月APCS實作題 第四題(反序數量)







Python Code:

n=int(input())
A=[int(x) for x in input().split()] 
def comp(p):
    flag=0
    for i in range(len(p)-1):
        for j in range(len(p)-i):
            if p[i]>p[i+j]:
                flag+=1
    return flag
print(comp(A))

😨😨😨
這是一看到題目,馬上可以寫出來的程式碼,但效率很差,大概只能拿到第一子題的分數 ~~~



上頭是網路上,看到人家寫的,甘拜下風




2019年3月19日 星期二

2018.6月APCS實作題 第二題(完全奇數)






Python Code:

import math as lp
n=int(input())
origin=n
old=[]#存n的舊各數字
new=[]#存n的舊各數字
def transtodigit(li):#將數字串列轉成十進位數
    num=0
    for i in li:
        num=num*10+i
    return num

def after(li,even):
    if even<len(li):
        li[even]+=1
    for i in range(even+1,len(li)):
        li[i]=1
    return transtodigit(li)
# 借二位以上就不用管它了,因為它不會是取完絕對值後最小
def before(li,even):
    if even<len(li):
        if li[even]==0:
            li[even]-=1
            li[even-1]-=1
            if li[even-1]<=0:
                li[even]=9
                li[even-1]=0
        elif li[even]!=0:
            li[even]-=1
    for i in range(even+1,len(li)):
        li[i]=9
    return transtodigit(li) 
       
q=lp.floor(lp.log10(n))+1 #取出n的位數
for i in range(q):
    ls=n%10
    old.append(ls)
    new.append(ls)
    n//=10
    
old.reverse()
new.reverse()
for i in range(len(old)):
    if (old[i]%2)==0:
        first_even=i #找出第一個出現偶數的位數
        break
    else:
        first_even=len(old)+1

ans=min(after(new,first_even)-origin,origin-before(old,first_even))
print(ans)







2019年3月18日 星期一

2018.6月APCS實作題 第一題(特殊編碼)



Python Code:

n=int(input())
a=[]
ans=[]
for i in range(n):
    l=input().split() #輸入的字串,將之分開
    li=[int(x) for x in l]
    a.append(str(li))
    
for i in range(n):
    if a[i]=='[0, 1, 0, 1]':
        ans.append('A')
    if a[i]=='[0, 1, 1, 1]':
        ans.append('B')
    if a[i]=='[0, 0, 1, 0]':
        ans.append('C')
    if a[i]=='[1, 1, 0, 1]':
        ans.append('D')
    if a[i]=='[1, 0, 0, 0]':
        ans.append('E')
    if a[i]=='[1, 1, 0, 0]':
        ans.append('F')
for i in range(len(ans)):
    print(ans[i],end='')