2023年7月25日 星期二

因數分解

for n in [1500,3500,6000]:

    nb = n

    a = []

    for i in range(2,int(n**0.5)+1):

        while n%i==0:

            a.append(i)   

            n = n /i

    

    out = []

    s = set(a)

    for i in s:

        t = f'{i}^{a.count(i)}'

        out.append(t)

    out = '*'.join(out)

    out = str(nb) + '=' + out

    out = out.replace('^1','')

    print(out)

 



2023年7月12日 星期三

解題數自動統計程式

 d= """
要分析的資料放這裡
"""
d =[i for i in  d.split('\n') if len(i)>0]
d =[i for i in  d if '年' in i and '月' in i and '日' in i and '2023' in i and ':' in i]
# for i in d:
    # print(i)
dd = []
for i in d:
    t = i.split('日 ')
    time1 = t[1]
    t = t[0].split('2023年')
    name1 = t[0]
    date1 = t[1]
    tlist = [name1,date1,time1]
    dd.append(tlist)
nameList = [i[0] for i in dd if len(i[0])>0]
nameSet = set(nameList)
print(len(nameList))
ddd = []
for i in nameSet:
    ddd.append([nameList.count(i),i])
ddd.sort()
ddd.reverse()
for i in ddd:
    print(i[1],':',i[0])
    
# 共166次
# sih yu : 32
# minyu : 27
# matthew0118 : 26
# 掄 : 25
# Rex_Chen : 24
# kadzuki0314 : 21
# jack : 8
# chia : 2
...


2023年7月4日 星期二

桃園國中實作 第2題

 # 桃園國中實作 第2題


# 第二題


# 0代表海

# 1代理陸地


# 給一個坐標,若是0,則輸出0

# 若是1,則與他這個陸地相連的土地有幾個


# 輸入

# 4 5(列,行)

# 1 1坐標

# 00000

# 00000

# 00000

# 00000


# 輸出0


# 4 5

# 1 2

# 0 1 1 0 0

# 0 1 1 0 1

# 0 0 1 0 0

# 0 0 0 0  1


# 輸出5

d = '''

4 5

1 2

0 1 1 0 0

0 1 1 0 1

0 0 1 0 0

0 0 0 0  1

'''

d = d.strip().splitlines()

m,n = map(int,d[0].split())

x,y = map(int,d[1].split())


dd = d[2:]

d = []

for i in dd:

    t = [ int(j) for j in i.split() ]

    d.append(t)

if d[x][y]==0: 

    print(d[x][y])

else:

    rangeList= []

    for i in range(m):

        for j in range(n):

            rangeList.append([i,j])


    visitList = []

    t = [x,y]

  

    tryList = [t]

    while len(tryList)>0:

        t = tryList.pop()

        visitList.append(t)


        tryList = []

        for i in [-1,0,1]:

            for j in [-1,0,1]:

                if [x+i,x+j] in rangeList and  not (i !=0 and j!=0) and [x+i,x+j] not in visitList:

                    tryList.append([x+i,x+j])


        for i in tryList:

            p,q = i[0],i[1]

            if d[p][q]!=0:

                d[p][q]=d[p][q]+1


maxList = []

for i in d:

    maxList.append(max(i))

print(max(maxList))

 

# 執行結果

# 5  

桃園國中實作 第1題

 # 桃園國中實作 第1題


# 第1題

# data

# 3 4


# 1 2 5 4

# 3 2 6 7

# 4 3 7 8輸出

# 求每1列最小值

# 最後一個是最小值中的最大值

# 1

# 2

# 3

# 3



d = '''

3 4


1 2 5 4

3 2 6 7

4 3 7 8

'''

d = [i for i in d.strip().splitlines()]

d = d[2:]

r = []

for i in d:

    t = i.split()

    r.append(min(t))

for i in r:

    print(i)

print(max(r))    

2023年6月19日 星期一

2023-暑假,每日程式上傳區

 每日找2至5個小程式,研究清楚後上傳至這裡,分享給一起學習的夥伴!

每個程式2行以上


成果預計

暑假結束,9月開學時

累積2*60~5*60個程式基礎,功力大增!

有空看看同學上傳的,一起交流,那就是2*60*10~5*60*10了!

大家加油!


2023年6月7日 星期三

用python 程式去python程式註解

 p = '''

a = a.replace('.',' ').replace(',',' ')

a = a.split()

a = [i for i in a if i>'']

# print(a)

# print(len(a))

sa = set(a)

# print(sa)

# print(len(sa))

b = []

for i in sa:

    t = [a.count(i),i.strip().lower()]

    b.append(t)

b.sort()

b.reverse()

b0 = [i[0] for i in b]

# print(*b)

# for i in b:

    # print(i[0],':',i[1])

# for i in b[:30]:

    # print(i)

c = [i for  i in b if i[0]>1 and i[1]>'9']

c0 = [i[0] for i in c]

# for i in c:

    # print(i)

# print(len(c))


# print(sum(b0),sum(c0))

for i in c:

   outline = f'{i[1]:<15} :{i[0]:>10}'

   print(outline)

p = int(sum(c0)/sum(b0) * 10000)/100

print(p)

print(len(c0))

'''

print(p)

p1 = p.splitlines()

# p1 = [i for i in p.split('\n')]

print(len(p1))

for i in p1:

    if len(i) >0:

        t = i

        t = t.strip()

        if t[0]!='#':

            print(i)


# 執行結果

a = a.replace('.',' ').replace(',',' ')

a = a.split()

a = [i for i in a if i>'']

sa = set(a)

b = []

for i in sa:

    t = [a.count(i),i.strip().lower()]

    b.append(t)

b.sort()

b.reverse()

b0 = [i[0] for i in b]

c = [i for  i in b if i[0]>1 and i[1]>'9']

c0 = [i[0] for i in c]

for i in c:

   outline = f'{i[1]:<15} :{i[0]:>10}'

   print(outline)

p = int(sum(c0)/sum(b0) * 10000)/100

print(p)

print(len(c0))

2023年6月6日 星期二

自己寫 split()

 using System;

public class Program

{

public static void Main()

{

string a = "10,20";

string[] b = new string[2];

//b = a.Split(',');

string tem = "";

foreach(char ch in a)

if (ch==',')

{

b[0]=tem;

tem = "";

}

else

tem=tem+ch;

b[1]=tem;

Console.WriteLine(b[0]);

Console.WriteLine(b[1]);

string[] c = new string[2];

c = mySplit(a);

Console.WriteLine(c[0]);

Console.WriteLine(c[1]);

}

public static string[] mySplit(string a)

{

string[] b = new string[2];

string tem = "";

foreach(char ch in a)

if (ch==',')

{

b[0]=tem;

tem = "";

}

else

tem=tem+ch;

b[1]=tem;

return b;

}

}