2023年6月19日 星期一

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

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

每個程式2行以上


成果預計

暑假結束,9月開學時

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

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

大家加油!


431 則留言:

  1. 同一個題目,不同解法,也可以!

    回覆刪除
  2. a = 'Hello'
    print(a[1])
    # 執行結果
    e

    回覆刪除
  3. for x in "banana":
     print(x)
    #執行結果
    b
    a
    n
    a
    n
    a

    回覆刪除
  4. def abc(nums):
    #能被2整除的數
    A = [num for num in nums if num % 2 == 0]
    #大於10的樹
    B = [num for num in nums if num > 10]
    #能被3整除的數
    C = [num for num in nums if num % 3 == 0]
    #作為元祖回傳
    return A,B,C

    nums = [1, 4, 9, 12, 15, 20]
    D = abc(nums)
    #將D拆解成A,B,C
    A,B,C = D
    print(A)
    print(B)
    print(C)

    回覆刪除
  5. #小計算機
    a = int(input("輸入第一個數"))
    c = input("請輸入運算符號")
    b = int(input("輸入第二個數"))
    try: #可能引發的錯誤 #判斷運算符號
    if c == "+":
    result = a + b
    print("結果:",result)
    elif c == "*":
    result = a * b
    print("結果:",result)
    elif c == "-":
    result = a-b
    print("結果:",result)
    elif c == "/":
    result = a/b
    print("結果:",result)
    elif c == "%":
    result = (a * b) /100
    print("結果:",result)
    elif c == "**":
    result = (a+b) ** 2
    print("結果:",result)

    else:
    print("輸入的結果無效")
    except ZeroDivisionError: #如果除數為0輸出錯誤訊息
    print("錯誤!除數不能為0")
    except ValueError: #如果數字無效輸出錯誤訊息
    print("錯誤!無效的數字")

    回覆刪除
  6. #题目:输入某年某月某日,判断这一天是这一年的第几天?
    a=int(input("請輸入年分:"))
    b=int(input("請輸入月份:"))
    c=int(input("請數入日期:"))
    result = 0
    data = [31,28,31,30,31,30,31,31,30,31,30,31]
    if a % 4 == 0:
    if b > 2:
    result += 1
    for i in range(1,b):
    if b <= 12:
    result += data[i]
    else:
    print("日期不對")
    break
    if b <= 12:
    if c <= 31:
    result += c
    print("今天是這一年的第",result,"天")
    else:
    print("日期不對")

    回覆刪除
  7. #题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
    for i in range(1,5):
    for j in range(1,5):
    for k in range(1,5):
    if i != j != k:
    print(i,j,k)

    回覆刪除
  8. def getip():
    url="https://myip.com.tw/"
    with requ.urlopen(url) as b:
    data=b.read().decode("utf-8")

    root=bs.BeautifulSoup(data,"html.parser")
    a=root.find("h1")

    Regex=re.compile(r'\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}')
    mo=Regex.search(a.text)

    return mo.group()

    這個程式會訪問myip.com
    之後再用正規表達式找到網頁中寫ip的部分並且回傳

    回覆刪除
  9. import requests
    import json
    import urllib.request as requ
    import bs4 as bs
    import re
    import time
    import datetime

    def getip():
    url="https://myip.com.tw/"
    with requ.urlopen(url) as b:
    data=b.read().decode("utf-8")

    root=bs.BeautifulSoup(data,"html.parser")
    a=root.find("h1")

    Regex=re.compile(r'\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}')
    mo=Regex.search(a.text)

    return mo.group()

    ip=getip()
    dns_id = '這裡我刪掉了喔'
    zone_id = '這裡我刪掉了喔'
    api_key = '這裡我刪掉了喔'
    auth_key = "這裡我刪掉了喔"
    auth_email = "這裡我刪掉了喔"

    def setdns(dns_id,zone_id,auth_email,auth_key,ip):
    url = 'https://api.cloudflare.com/client/v4/zones/'+zone_id+'/dns_records/'+dns_id
    head = {
    "Content-Type":"application/json",
    "X-Auth-Email":auth_email,
    "X-Auth-Key":auth_key

    }

    records = {
    "type":"A",
    "name":"mc",
    "content":ip,
    "proxied":True

    }

    req = requests.put(url,headers=head,data=json.dumps(records))
    code = req.status_code
    return code

    ip = ""

    while True:
    newip = getip()

    if ip != newip:
    ip = newip
    res = setdns(dns_id,zone_id,auth_email,auth_key,ip)
    timestamp = datetime.datetime.now()
    print(res,"|",ip,"|",timestamp)
    time.sleep(300)

    這個程式會先取得對外ip 再使用cloudflare的api 來更新dns
    最後while迴圈是每隔5分鐘就檢查一次對外ip 如果不一樣就更新

    這個程式可以讓網域實現 動態dns的功能

    回覆刪除
  10. #include
    /*打印華氏與攝氏溫度對照表*/
    int main(){
    int setp, upper, lower;
    float fahr, celsius;
    setp = 20; /*步長*/
    upper = 0; /*溫度表的下限*/
    upper = 300; /*溫度表的上限*/
    fahr = upper;
    while (fahr<=upper) {
    celsius = (5.0/9.0)*(fahr - 32.0);
    printf("%3.0f %6.1f\n", fahr, celsius);
    fahr = fahr + setp;
    }
    return 0;
    }

    回覆刪除
    回覆
    1. #include
      int main(){
      int fahr;
      for(fahr = 0;fahr<=300;fahr = fahr + 20){
      printf("%3d %6.1f\n", fahr, (5.0/9.0)*(fahr - 32));
      }
      return 0;
      }

      刪除
  11. 這是一個可以猜1~100之間的數字的小遊戲
    import random

    target_number = random.randint(1, 100)

    while True:
    guess = int(input("請猜一個在1和100之間的數字:"))

    if guess == target_number:
    print("恭喜你猜對了!")
    break
    elif guess < target_number:
    print("太小了,請再試一次。")
    else:
    print("太大了,請再試一次。")

    回覆刪除
  12. def factorial(n):
    result = 1
    for i in range(1, n + 1):
    result *= i
    return result

    num = int(input("請輸入一個正整數:"))
    fact = factorial(num)
    print(f"{num}的階乘為:{fact}")
    這個程式可以幫助我們方便計算階乘

    回覆刪除
  13. score=input('請輸入成績:')
    score=int(score)
    if score>=60:
    print('及格')
    if score<=60:
    print('不及格')

    回覆刪除
  14. 今天大家很棒! 好的開始!

    回覆刪除
  15. math=[[],[]]
    english=[[],[]]
    chinese=[[],[]]
    subject=['math','english','chinese','not']

    #定義輸入成績函式
    def a_s():
    while True:
    try:
    s=input('輸入要登記的科目\n math,english,chinese,not\n')
    if s=='not':
    print(english)
    print(math)
    print(chinese)
    exit()
    else:
    for i in subject:
    if s!=i:
    print('輸入錯誤')
    exit()
    elif s==i:
    n=int(input('請輸入要登記的座號:'))
    score=map(int,input('請輸入該座號的成績:').split())
    if s=='math':
    math[n].append(score)
    elif s=='english':
    english[n].append(score)
    elif s=='chinese':
    chinese[n].append(score)
    elif s=='not':
    print(math)
    print(english)
    print(chinese)
    else:
    print('輸入錯誤')

    except:
    break
    a_s()

    這個程式還有很多bug我還沒修好

    回覆刪除
    回覆
    1. math=[[],[]]
      english=[[],[]]
      chinese=[[],[]]
      subject=['math','english','chinese','not']

      #定義輸入成績函式
      def a_s():
      while True:
      try:
      s=input('輸入要登記的科目\n math,english,chinese,not\n')
      if s=='not':
      print(english)
      print(math)
      print(chinese)
      exit()
      else:
      for i in subject:
      if s!=i:
      print('輸入錯誤')
      break
      elif s==i:
      n=int(input('請輸入要登記的座號:'))
      score=list(map(int,input('請輸入該座號的成績:').split()))
      if s=='math':
      math[n].append(score)
      elif s=='english':
      english[n].append(score)
      elif s=='chinese':
      chinese[n].append(score)
      elif s=='not':
      print(math)
      print(english)
      print(chinese)
      else:
      print('輸入錯誤')
      break

      except:
      break
      a_s()

      這個是改過的版本,但還是有一小部分還是怪怪的

      刪除
    2. count = int(input("請輸入學生人數")) #新增這行
      math=[None for i in range(count)] #修改這裡
      english=[None for i in range(count)] #修改這裡
      chinese=[None for i in range(count)] #修改這裡
      subject=['math','english','chinese','not']

      #定義輸入成績函式
      def a_s():
      while True:
      try:
      s=input('輸入要登記的科目\n math,english,chinese,not\n')
      if s=='not':
      print("english:",english)
      print("math:",math)
      print("chinese:",chinese)
      exit()
      else:
      #刪除這裡 for i in subject:
      if s not in subject: #修改這裡
      print('輸入錯誤')
      break

      n=int(input('請輸入要登記的座號:'))-1
      score=int(input('請輸入該座號的成績:')) #修改這裡
      if s=='math':
      math[n]=score #修改這裡
      elif s=='english':
      english[n]=score #修改這裡
      elif s=='chinese':
      chinese[n]=score #修改這裡
      #刪除這裡 elif s=='not':
      #刪除這裡 print(math)
      #刪除這裡 print(english)
      #刪除這裡 print(chinese)
      #刪除這裡 else:
      #刪除這裡 print('輸入錯誤')
      #刪除這裡 break

      except:
      break

      a_s()


      我用我的方式改了一下 給你參考

      刪除
  16. APCS 2022 實作題1 成績指標

    student = int(input())
    data = list(map(int,input().split()))

    data.sort()
    for i in range(student):
    print(data[i],end=" ")

    print()

    def findBig():
    for i in range(student):
    if data[i]>60:
    print(data[i])
    break
    def findsmall():
    for i in range(student):
    if data[(student-1)-i]<60:
    print(data[(student-1)-i])
    break

    if data[0]>=60:
    print("best case")
    else:
    findsmall()


    if data[student-1]<60:
    print("worse case")
    else:
    findBig()

    回覆刪除
  17. APCS 2022 實作題2 三角形判別

    data = list(map(int,input().split()))
    data.sort()

    a, b, c =data
    print(a,b,c)

    if a+b<=c:
    print("No")
    else:
    x = a*a+b*b
    if xc*c:
    print("Acute")

    回覆刪除
  18. #求1~n的總和
    while True:
    try:
    sum=0
    n=int(input('請輸入一個正整數:'))
    for i in range(1,n+1):
    sum+=i
    else:
    print(sum)
    except:
    break

    回覆刪除
  19. #判斷輸入的數字是否為3的倍數
    while True:
    try:
    n=input('請輸入正整數:\n').split('\n')
    for i in range(len(n)):
    nl=list(map(int,n))
    for a in nl:
    if a%3==0:
    print('Yes')
    else:
    print('No')
    except:
    break

    回覆刪除
  20. #直角三角形

    n = int(input("書入一個數字"))
    for i in range(1,n+1): #控制行數
    for j in range(1,i+1): #控制每行數字
    print("%d"%(j),end= " ") #輸出數字以空白隔開
    print() #換行

    回覆刪除
  21. /*華氏與攝氏對照表*/
    #include
    int main(){
    int fahr;
    #define Step 20
    #define Upper 300
    #define Lower 0
    for(fahr = Lower; fahr <= Upper; fahr = fahr + Step)
    printf("%3d %6.1f\n", fahr, (5.0/9.0)*(fahr - 32));
    }

    回覆刪除
    回覆
    1. /*用於將輸入複製到輸出*/
      #include
      int main(){
      int c;
      c = getchar();
      while( c!=EOF ){
      putchar(c);
      c = getchar();
      }
      }

      刪除
  22. #判斷成績
    def grade(nums):
    #判斷等級
    if nums>90:
    return "A"
    elif 80<=nums<=89:
    return "B"
    elif 70<=nums<=79:
    return "C"
    elif 60<=nums<=69:
    return "D"
    else:
    return "F"
    #測試成績輸出結果
    print(grade(95))
    print(grade(59))
    print(grade(70))
    print(grade(89))
    print(grade(61))

    回覆刪除
  23. #题目:判断101-200之间有多少个質数,并输出所有質数。
    for i in range(101,201):
    for j in range(2,i):
    if i % j == 0:
    print(i,"是質數")
    break

    回覆刪除
    回覆
    1. for i in range(101,201):
      isP = True
      for j in range(2,i):
      if i % j == 0:
      isP = False
      break
      if isP:
      print(i,"是質數")

      刪除
  24. #九九乘法表
    for i in range(1,10):
    for j in range(1,10):
    result=i*j
    print("%d*%d=%-2d"%(i,j,result),end="")
    print()

    回覆刪除
  25. def analyze_list(lst):
    # 計算列表中的最大值
    max_value = max(lst)

    # 計算列表中的最小值
    min_value = min(lst)

    # 計算列表中的總和
    sum_value = sum(lst)

    # 計算列表中的平均值
    avg_value = sum_value / len(lst)

    return max_value, min_value, sum_value, avg_value

    # 輸入數字
    numbers = list(map(int,input("請輸入數字").split()))

    # 呼叫函式進行分析
    max_val, min_val, sum_val, avg_val = analyze_list(numbers)

    # 輸出結果
    print("列表中的最大值:", max_val)
    print("列表中的最小值:", min_val)
    print("列表中的總和:", sum_val)
    print("列表中的平均值:", avg_val)
    這是一個可以計算所輸入數字最小值、最大值、總和及平均數的小程式

    回覆刪除
  26. APCS 實作題考古題
    https://apcs.csie.ntnu.edu.tw/wp-content/uploads/2022/10/%E5%AF%A6%E4%BD%9C%E9%A1%8C_%E9%A1%8C%E5%9E%8B%E7%AF%84%E4%BE%8B.pdf

    3秘密差

    data = input()

    odd = 0
    even = 0

    for i in range(len(data)):
    if i % 2==0:
    even+=int(data[i])
    else:
    odd+=int(data[i])

    ans = odd-even

    if ans<0:
    print(-1*ans)
    else:
    print(ans)

    回覆刪除
  27. APCS 實作題考古題
    https://apcs.csie.ntnu.edu.tw/wp-content/uploads/2022/10/%E5%AF%A6%E4%BD%9C%E9%A1%8C_%E9%A1%8C%E5%9E%8B%E7%AF%84%E4%BE%8B.pdf

    4邏輯運算子

    data = list(map(int,input().split()))

    d = []

    for i in data:
    if i >=1:
    d.append(1)
    else:
    d.append(0)

    a, b, ans = d
    c=0
    if a!=b:
    c=1

    out = False
    if a*b ==ans:
    print("AND")
    out = True
    if a+b>=ans:
    print("OR")
    out = True
    if c==ans:
    print("XOR")
    out = True
    if out ==False:
    print("IMPOSSIBLE")

    回覆刪除
  28. #把輸入的陣列反向輸出
    times=int(input('輸入陣列長度:'))
    n=input('輸入陣列資料:').split(',')
    for i in range(len(n)):
    nl=list(map(int,n))
    pl=list(reversed(nl))
    print(pl)

    回覆刪除
    回覆
    1. 欸哭啊原來有reversed()這個function 喔 我昨天還特地做了一個function 來反向排序

      刪除
    2. 現有的函數自己寫寫看,是很棒的學習!
      下次看到現成的函數不好用,就可以自己寫一個!

      刪除
    3. https://selflearningsuccess.com/python-list/

      我在這個網站看到的

      刪除
  29. times=int(input('請輸入要使用的次數:'))
    for i in range(times):
    a,b,c=map(int,input('請輸入a,b,c的值\na值為1時為加法\na值為2時為減法\na值為3時為乘法\na值為4時為除法\n').split())
    if a==1:
    print(b+c)
    elif a==2:
    print(b-c)
    elif a==3:
    print(b*c)
    elif a==4:
    print(b/c)
    else:
    print('錯誤')

    回覆刪除
  30. #题目:输入三个整数x,y,z,请把这三个数由小到大输出。
    x=int(input("第一個數:"))
    y=int(input("第二個數:"))
    z=int(input("第三個數:"))
    data=[x,y,z]
    print(sorted(data))

    回覆刪除
  31. #每過一秒,輸出當前的時間
    import time
    for i in range(10):
    time.sleep(1)
    print (time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))

    回覆刪除
  32. 老師出的 第一題

    h, w = list(map(int,input().split()))
    data = []

    for i in range(h):
    temp = list(map(int,input().split()))
    temp.sort()
    a = temp[0]
    data.append(a)

    for i in data:
    print(i)
    data.sort()
    data.reverse()
    print(data[0])

    回覆刪除
  33. def abc(nums):
    A = len(nums) # A 為列表 nums 的長度
    B = sum(nums) # B 為列表 nums 的元素總和
    C = max(nums) # C 為列表 nums 的最大值
    D = min(nums) # D 為列表 nums 的最小值
    E = B / A # E 為列表 nums 的平均值
    F = sum(1 for num in nums if num>E) # F 為大於平均值 E 的元素個數
    return A,B,C,D,E,F

    nums = [3, 1, 5, 2, 4, 6] #輸入要找的數
    a = abc(nums)
    A,B,C,D,E,F = a
    print(A)
    print(B)
    print(C)
    print(D)
    print(E)
    print(F)

    回覆刪除
  34. #民國年轉換西元年
    A = int(input("輸入一個民國年"))
    B = A + 1911 #西元年
    print(B)

    回覆刪除
  35. /*求三個數最大值*/
    #include
    int main(){
    int a, b, c, max;
    printf("Please enter the integer: \n");
    scanf("%d%d%d", &a, &b, &c);
    max = a;
    if(max < b){
    max = b;
    }
    if(max < c){
    max = c;
    }
    printf("The maximum is %d", max);
    return 0;
    }

    回覆刪除
    回覆
    1. /*對三個變數求中位數*/
      #include
      int main(){
      int a, b, c, med;
      printf("Please enter three integers: \n");
      scanf("%d%d%d", &a, &b, &c);
      med =a;
      if((b - med) * (b - c) < 0){
      med = b;
      }
      if((c - med)*(c - b) <0){
      med = c;
      }
      printf("The median is %d\n", med);
      return 0;
      }

      刪除
  36. #貨比三家
    A = int(input("輸入A商店售價")) #A商店售價
    B = int(input("輸入B商店售價")) #B商店售價
    C = int(input("輸入C商店售價")) #C商店售價
    # 判斷誰比較便宜
    if A > B:
    if B > C:
    print("A商店最便宜")
    elif A == C:
    print("A商店跟C商店價格一樣")
    elif B > C:
    if B > A:
    print("B商店最便宜")
    elif B == A:
    print("A商店跟B商店價格一樣")
    elif C > A:
    if C > B:
    print("C商店最便宜")
    elif C == B:
    print("B商店跟C商店價格一樣")

    回覆刪除
  37. 老師出的 第2題

    h, w = list(map(int,input().split()))
    y, x = list(map(int,input().split()))
    x-=1
    y-=1

    data = []

    for i in range(h):
    a = list(map(int,input().split()))
    data.append(a)

    if data[y][x] == 0:
    print(0)
    exit()

    def findconect(arr, index):
    if arr[index]==0:
    return 0
    i = index
    outindex = [index]
    count = 0
    while i >0:
    i-=1
    if arr[i]!=0:
    outindex.append(i)
    count +=1
    else:
    break
    i = index
    while i 0:
    i-=1
    for j in indexs:
    a = findconect(data[i],j)
    if a!=0:
    indexs_ = a
    indexs =indexs_
    ans+=len(indexs)
    i = y
    while i < len(data)-1:
    i+=1
    for j in indexs:
    a = findconect(data[i],j)
    if a!=0:
    indexs_ = a
    indexs = list(indexs_)
    indexs_ =[]
    ans+=len(indexs)
    return ans

    ans = main(data, x, y)

    print(ans)

    不過有bug 沒辦法處理項是下面這樣的情況
    1 1 1 0 0
    1 0 1 0 0
    1 0 1 0 0
    1 1 1 0 0
    或是
    1 1 1 0 0
    1 0 1 0 0
    1 1 1 0 0
    0 0 0 0 0
    的情況

    回覆刪除
  38. 7/3 -1 計算年齡差
    def calculate_age_difference(year1, year2):
    age_difference = abs(year1 - year2)
    return age_difference

    birth_year1 = int(input("請輸入第一個人的出生年份:"))
    birth_year2 = int(input("請輸入第二個人的出生年份:"))

    age_difference = calculate_age_difference(birth_year1, birth_year2)

    print("兩人的年齡差距為:", age_difference, "年")
    抱歉晚傳了

    回覆刪除
  39. 7/3-2 把輸入數字顛倒
    a = list(map(int,input("請輸入數字").split()))

    for i in a[::-1]:
    print (i)

    回覆刪除
  40. #APCS分數換算級分
    times=int(input('請輸入要使用的次數:'))
    for i in range(times):
    cs,ps=map(int,input('請先輸入觀念題(0~100)的分數再輸入實作題(0~400)的分數:\n').split())
    if cs<30:
    cq='1'
    elif cs<50:
    cq='2'
    elif cs<70:
    cq='3'
    elif cs<90:
    cq='4'
    else:
    cq='5'

    if ps<50:
    pq='1'
    elif ps<150:
    pq='2'
    elif ps<250:
    pq='3'
    elif ps<350:
    pq='4'
    else:
    pq='5'
    print('觀念題級分為'+cq+'分\n實作題級分為'+pq+'分')

    回覆刪除
  41. #取列表中位數
    nl=list(map(int,input('請輸入一個列表:\n').split()))
    nl_sorted=sorted(nl)
    j=len(nl_sorted)%2
    if j==0:
    m1=int(len(nl_sorted)/2-1)
    m2=int(len(nl_sorted)/2)
    print((nl_sorted[m1]+nl_sorted[m2])/2)
    else:
    m=int((len(nl_sorted)+1)/2-1)
    print(nl_sorted[m])

    回覆刪除
  42. /*對三個數依照大小排序*/
    #include
    int main(){
    int a, b, c, t;
    printf("Please enter three integers: \n");
    scanf("%d%d%d", &a, &b, &c);
    printf("Before: %2d%2d%2d\n", a, b, c);
    if(b < a){
    t = a;
    a = b;
    b = t;
    }
    if(c < b){
    t = b;
    b = c;
    c = t;
    }
    if(c < a){
    t = a;
    a = c;
    c = t;
    }
    printf("After: %2d%2d%2d", a, b, c);
    return 0;
    }

    回覆刪除
    回覆
    1. 作者已經移除這則留言。

      刪除
    2. 作者已經移除這則留言。

      刪除
    3. 作者已經移除這則留言。

      刪除
    4. /*判斷成績是否及格*/
      #include
      int main(){
      int a;
      printf("Please eneter the grade: \n");
      scanf("%d", &a);
      if(a >= 60){
      printf("PASS!\n");
      }
      else
      {
      printf("PAIL!");
      }
      return 0;
      }

      刪除
  43. #題目:一球從100米高度自由落下,每次落地後反跳回原高度的一半;再落下,求它在第10次落地時,共經過多少米?第10次反彈多高?
    tour = []
    height = []

    hei = 100.0 # 起始高度
    tim = 10 # 次數

    for i in range(1, tim + 1):
    if i == 1:
    tour.append(hei)
    else:
    tour.append(2*hei)
    hei /= 2
    height.append(hei)

    print('總高度:tour = {0}'.format(sum(tour)))
    print('第10次反彈高度:height = {0}'.format(height[-1]))

    回覆刪除
  44. #題目:將一個正整數分解質因數。
    def reduceNum(n):
    print ('{} = '.format(n), end=" ")
    if not isinstance(n, int) or n <= 0 :
    print ('請輸入一個正確的正整數 !')
    exit(0)
    elif n in [1] :
    print ('{}'.format(n))
    while n not in [1] : # 循环保证递归
    for index in range(2, n + 1) :
    if n % index == 0:
    n //= index # n 等于 n//index
    if n == 1:
    print (index )
    else : # index 一定是素数
    print ('{} *'.format(index), end=" ")
    break

    reduceNum(int(input("請輸入一個正整數:")))

    回覆刪除
  45. # 台中女中程式解題系統 細菌繁殖
    a,b = map(int,input("輸入兩個數用空格隔開").split( ))
    c = a
    d = 0
    while c<b:
    d += 1
    c *= 3
    print(d)

    回覆刪除
  46. #题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
    n = int(input("請輸入一個是數字:"))
    if n >= 90:
    level = "A"
    elif n >= 60:
    level = "B"
    else:
    level = "C"
    print(n,"為等級",level)

    回覆刪除
  47. #题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
    n=100
    a=0
    for i in range(10):
    a+=n
    n/=2
    a+=n
    a-=n
    print("共經過:",a,"米,""第十次反彈的高度為:",n)

    回覆刪除
  48. # 台中女中程式解題系統 倒數計時
    n = int(input())
    a = ""
    for i in range(n,-1,-1):
    a += str(i)
    print(a)

    回覆刪除
  49. #台中女中程式解題系統 年齡推算

    #題目:饅頭之家住了大綠、小綠、阿藍、阿紫等四個人,其中大綠是小綠的姐姐,而且比她大三歲,阿藍則是比小綠年齡的兩倍少五歲,而阿紫年齡的十位數和阿藍相同、個位數和大綠相同。已知小綠的年齡,你能推算出阿紫是幾歲嗎?
    sg=int(input())
    bg=(sg+3)%10
    b=(2*sg-5)//10
    print(str(b)+str(bg))

    回覆刪除
  50. #面積計算系統
    c=input('請輸入要計算的面積種類\n正方形、長方形、三角形、梯形\n')
    if c=='正方形':
    s=int(input('請輸入邊長:'))
    print(s**2)
    elif c=='長方形':
    l,w=map(int,input('請輸入長寬:').split())
    print(l*w)
    elif c=='三角形':
    b,h=map(int,input('請輸入底跟高:').split())
    print(b*h/2)
    elif c=='梯形':
    ob,db,h=map(int,input('請輸入上底、下底和高:').split())
    print((ob+db)*h/2)
    else:
    print('程式出錯')

    回覆刪除
  51. #题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一
    #个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下
    #的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
    n=1
    for i in range(10):
    n=(n+1)*2
    n/=2
    n-=1
    print(n)

    回覆刪除
  52. #题目:打印出如下图案(菱形):
    ''' *
    **
    ***
    ****
    *****
    ******
    *******
    ******
    *****
    ****
    ***
    **
    *
    '''

    for i in range(1,8):
    print("*"*i)

    for j in range(6,0,-1):
    print("*"*j)

    回覆刪除
  53. /*猜數字*/
    #include
    int main(){
    int a, answer;
    answer = 2;
    printf("Please enter your guess: \n");
    scanf("%d", &a);
    if(a > answer){
    printf(" Too large!\n");
    } else if (a < answer)
    printf(" Too small!\n");
    else {
    printf("Correct!\n");
    }
    return 0;
    }

    回覆刪除
    回覆
    1. /*簡易四則運算*/
      #include
      int main(){
      int num1, num2;
      char op;
      float answer;
      printf("Please enter the formula = \n");
      scanf("%d%c%d", &num1, &op, &num2);
      if (op == '+') {
      answer = num1 + num2;
      } else if (op == '-'){
      answer = num1 - num2;
      } else if (op == '*'){
      answer = num1 * num2;
      } else if (op == '/'){
      answer = (float)num1 / num2;
      }
      else {
      printf("error!");
      return 0;
      }
      printf("ANS: %.1f", answer);
      return 0;
      }

      刪除
  54. # 台中女中程式解題系統 公平的戰役(1行版) (**)
    a,b = map(int,input("輸入兩個數用空格隔開\n").split( ))
    while True:
    if a < b:
    b = b - a
    print("B ",b)
    else:
    a = a - b
    print("A ",a)
    break

    回覆刪除
  55. #題目1:計算購物車總金額

    def calculate_total_price(prices):
    total_price = sum(prices)
    return total_price

    num_items = int(input("請輸入購物車中商品的數量:"))

    prices = []
    for i in range(num_items):
    price = float(input("請輸入第 {} 個商品的價格:".format(i+1)))
    prices.append(price)

    total_price = calculate_total_price(prices)

    print("購物車的總金額為:", total_price)

    回覆刪除
  56. #計算BMI指數

    weight = float(input("請輸入您的體重(公斤):"))
    height = float(input("請輸入您的身高(米):"))

    bmi = weight / (height * height)

    print("您的BMI指數為:", bmi)

    回覆刪除
  57. # 台中女中程式解題系統 公平的戰役(N行版)

    n = int(input())
    for i in range(1,n+1):
    a,b = map(int,input("輸入兩個數用空格隔開\n").split( ))
    if a < b:
    b = b - a
    print("B ",b)
    else:
    a = a - b
    print("A ",a)

    回覆刪除
  58. 作者已經移除這則留言。

    回覆刪除
  59. APCS 實作題考古題
    https://apcs.csie.ntnu.edu.tw/wp-content/uploads/2022/10/%E5%AF%A6%E4%BD%9C%E9%A1%8C_%E9%A1%8C%E5%9E%8B%E7%AF%84%E4%BE%8B.pdf

    5矩陣轉換

    R,C,M = list(map(int,input().split()))
    data = []

    for i in range(R):
    data.append(list(map(int,input().split())))

    step = list(map(int,input().split()))

    def rotate():
    data_ = []
    for i in range(len(data[0])-1,-1,-1):
    temp = []
    for j in data:
    temp.append(j[i])
    data_.append(temp)
    return data_

    def change():
    data_ = []
    for i in range(len(data)-1,-1,-1):
    data_.append(data[i])
    return data_

    for i in range(len(step)-1,-1,-1):
    if step[i]==0:
    data=rotate()
    else:
    data=change()

    print(len(data),len(data[0]))

    for i in data:
    for j in i:
    print(j,end=" ")
    print()

    回覆刪除
  60. APCS 實作題考古題
    https://apcs.csie.ntnu.edu.tw/wp-content/uploads/2022/10/%E5%AF%A6%E4%BD%9C%E9%A1%8C_%E9%A1%8C%E5%9E%8B%E7%AF%84%E4%BE%8B.pdf

    6最大和

    N, M=list(map(int,input().split()))

    bignums = []
    S = 0


    for i in range(N):
    data = list(map(int,input().split()))
    data.sort()
    bignums.append(data[M-1])

    for i in bignums:
    S+=i
    print(S)

    NoOut=True

    for i in bignums:
    if S%i==0:
    print(i,end=" ")
    out=False
    if NoOut:
    print(-1)

    回覆刪除
  61. # 台中女中程式解題系統 收集冰棒棍
    a = int(input())
    c = a #儲存最終可以吃到的冰棒數量
    while a >= 5:
    b = a // 5 # 換取的新冰棒數量
    c += b # 將新冰棒數量加到 c 中
    a = a % 5 + b # 計算剩餘的冰棒數量

    print(c)

    回覆刪除
  62. #算列表的平均數
    l=list(map(int,input('請輸入列表\n請用空白隔開\n').split()))
    sum=0
    for i in l:
    sum+=i
    average=sum/len(l)
    print(average)

    回覆刪除
  63. #求點到直線之距離
    dx,dy=map(int,input('請輸入點座標').split(','))
    a,b,c=map(int,input('請輸入方程式的a,b,c值\n(方程式的形式為ax+by+c=0)\n').split(','))
    do=(dx*a+dy*b+c)
    db=(a**2+b**2)**0.5
    print(do/db)

    回覆刪除
  64. APCS 實作題考古題
    https://apcs.csie.ntnu.edu.tw/wp-content/uploads/2022/10/%E5%AF%A6%E4%BD%9C%E9%A1%8C_%E9%A1%8C%E5%9E%8B%E7%AF%84%E4%BE%8B.pdf

    7小群體

    count = int(input())
    friendlist = list(map(int,input().split()))
    isvisited=[0 for i in range(count)]

    i = 0
    ans=0

    for a in range(count):
    if isvisited[a] ==1:
    continue
    else:
    i = a
    while True:
    if isvisited[i]!=1:
    isvisited[i] = 1
    i = friendlist[i]
    else:
    ans+=1
    break

    print(ans)

    回覆刪除
  65. APCS 實作題考古題
    https://apcs.csie.ntnu.edu.tw/wp-content/uploads/2022/10/%E5%AF%A6%E4%BD%9C%E9%A1%8C_%E9%A1%8C%E5%9E%8B%E7%AF%84%E4%BE%8B.pdf

    8交錯字串

    k = int(input())
    data = input()
    d = []
    ans = 0
    n = 0

    for i in data:
    if i.islower():
    d.append(1)
    else:
    d.append(-1)


    for i in range(len(d)):
    check = d[i]*-1
    if ans<n:
    ans = n
    n = 0
    while True:
    nomatch = False
    try:
    temp = d[i+n:k+i+n]
    if len(temp)<k:
    break
    for j in temp:
    if j==check:
    nomatch=True
    if nomatch==True:
    break
    n+=k
    check*=-1
    except:
    break
    print(ans)

    回覆刪除
  66. #題目:對10個數進行排序

    if __name__ == "__main__":
    N = 10
    # input data
    print ('請輸入10個數字:\n')
    l = []
    for i in range(N):
    l.append(int(input('輸入一個數字:\n')))
    print
    for i in range(N):
    print (l[i])
    print

    # 排列10個數字
    for i in range(N - 1):
    min = i
    for j in range(i + 1,N):
    if l[min] > l[j]:min = j
    l[i],l[min] = l[min],l[i]
    print ('排列之後:')
    for i in range(N):
    print (l[i])

    回覆刪除
  67. #題目:求輸入數字的平方,如果平方運算後小於 50 則退出

    TRUE = 1
    FALSE = 0
    def SQ(x):
    return x * x
    print ('如果輸入的數字小於 50,程序將停止運行。')
    again = 1
    while again:
    num = int(input('請輸入一個數字:'))
    print ('運算結果為: %d' % (SQ(num)))
    if SQ(num) >= 50:
    again = TRUE
    else:
    again = FALSE

    回覆刪除
  68. #题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
    for i in range(100,1000):
    if (i//100)**3 + (i//10%10)**3 + (i%10)**3 == i:
    print(i)

    回覆刪除
  69. #题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时
    #,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;4
    #0万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,
    #超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
    a = int(input("請輸入利潤數:"))
    print("應發放獎金總數:")
    if a-1000000>0:
    b=(a-1000000)*0.01
    c=400000*0.015
    d=200000*0.03
    e=200000*0.05
    f=100000*0.075
    g=100000*0.1
    print(b+c+d+e+f+g)
    if a-600000>0:
    b=(a-600000)*0.015
    c=200000*0.03
    d=200000*0.05
    e=100000*0.075
    f=100000*0.1
    print(b+c+d+e+f)
    if a-400000>0:
    b=(a-400000)*0.03
    c=200000*0.05
    d=200000*0.075
    e=100000*0.1
    print(b+c+d+e)
    if a-200000>0:
    b=(a-200000)*0.05
    c=200000*0.075
    d=100000*0.1
    print(b+c+d)
    if a-100000>0:
    b=(a-100000)*0.075
    c=100000*0.1
    print(b+c)
    else:
    print(a*0.1)

    回覆刪除
  70. /*求1加到N的整數和*/
    #include
    int main(){
    int N, sum = 1, i;
    printf("N = ");
    scanf("%d", &N);
    for(i = 2; i <= N; i++){
    sum = sum + i;
    }
    printf("%d", sum);
    }

    回覆刪除
    回覆
    1. /*求1加到N的整數和*/
      #include
      int main(){
      int N;
      printf("N = ");
      scanf("%d", &N);
      int sum = (1 + N) * N / 2;
      printf("%d", sum);
      }

      刪除
  71. #最大公因數

    def gcd(nums1,nums2):
    if nums2 == 0:
    return nums1
    else:
    return gcd(nums2,nums1%nums2)

    a = int(input("輸入一個數"))
    b = int(input("輸入第二個數"))

    c = gcd(a,b)
    print("最大公因數:",c)

    回覆刪除
  72. # 台中女中程式解題系統 閏年判斷
    N = int(input())

    if N % 4 !=0:
    print("no")
    elif N % 100 != 0:
    print("yes")
    elif N % 400 !=0:
    print("NO")
    else:
    print("yes")

    回覆刪除
  73. #題目:給定一個整數,n,和n以空格分隔的整數作為輸入,創建一個元組,t,那些n整數。然後計算並打印結果hash(t)。

    #輸入格式:n表示元組中元素的數量

    n=int(input('請輸入tuple中的元素數量\n'))
    t=tuple(map(int,input('請輸入tuple內的資料\n用空白隔開\n').split()))
    print(hash(t))

    回覆刪除
  74. #TQC 距離判斷
    #題目:請使用選擇敘述撰寫一程式,讓使用者輸入一個點的平面座標x和y值,判斷此點是否與點(5, 6)的距離小於或等於15,如距離小於或等於15顯示【Inside】,反之顯示【Outside】。
    x,y=map(int,input('請輸入x座標和y座標:\n').split())
    d=((5-x)**2+(6-y)**2)**0.5
    if d<=15:
    print('Inside')
    else:
    print('Outside')

    回覆刪除
  75. #題目:找出列表中的奇數

    def find_odd_numbers(numbers):
    odd_numbers = []
    for num in numbers:
    if num % 2 != 0:
    odd_numbers.append(num)
    return odd_numbers

    numbers = list(map(int,input("請輸入數字").split()))
    odd_numbers = find_odd_numbers(numbers)

    print("列表中的奇數:", odd_numbers)

    回覆刪除
  76. #題目:找出最大公因數

    def compute_gcd(a, b):
    while b:
    a, b = b, a % b
    return a

    num1 = int(input("請輸入第一個正整數:"))
    num2 = int(input("請輸入第二個正整數:"))

    gcd = compute_gcd(num1, num2)

    print("最大公因數為:", gcd)

    回覆刪除
  77. /*繪製特定長度的橫線*/
    #include
    int main(){
    int N, b;
    printf("N = ");
    scanf("%d", &N);
    for(b = 0; b <= N; b++){
    printf("*");
    }
    printf("\n");
    return 0;
    }

    回覆刪除
    回覆
    1. /*判斷三角形*/
      #include
      int main(){
      int a, b, c, t;
      printf("Please enter the lengths:\n");
      scanf("%d%d%d", &a, &b, &c);
      if (a > b){
      t = a;
      a = b;
      b = t;
      }
      if (b > c){
      t = b;
      b= c;
      c = t;
      }
      if (a > c){
      t = a;
      a = c;
      c = t;
      }
      if (a + b <= c){
      printf("Not a triangle!");
      }
      if(a == c ){
      printf("regular triangle");
      } else if (a == b || b == c){
      printf("isoscale triangle");
      } else if(a * a + b * b == c*c){
      printf("rectangular triangle");
      }
      return 0;
      }

      刪除
  78. #题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。
    a=c=int(input("請輸入一個數(10以內):"))
    b=int(input("請輸入次數:"))
    result=a
    print(a)
    for i in range(b-1):
    a=c+a*10
    print(a)
    result += a
    print("計算和為:",result)
    範例:
    請輸入一個數(10以內):4

    請輸入次數:4
    4
    44
    444
    4444
    計算和為: 4936

    回覆刪除
  79. #题目:分解一個數。
    n=int(input("請輸入一個數字:"))
    print("此數的因數有:")
    for i in range(1,n+1):
    if n % i == 0:
    print(i)
    n /= i
    else :
    print(n)
    break

    回覆刪除
  80. import requests
    from pytube import YouTube

    def download_youtube_thumbnail(video_url):
    yt = YouTube(video_url)

    thumbnail_url = yt.thumbnail_url

    response = requests.get(thumbnail_url)
    if response.status_code == 200:
    filename = 'thumbnail.jpg'
    with open(filename, 'wb') as f:
    f.write(response.content)
    print(f"封面圖片下載完成: {filename}")
    else:
    print("無法獲取封面圖片")

    video_url = 'https://www.youtube.com/watch?v=62UdiKUTAlw'

    download_youtube_thumbnail(video_url)

    這是一個可以取得youtube影片封面的小程式

    回覆刪除
  81. z = []
    try:
    while True:

    y = input()
    z.append(y)
    except EOFError:
    pass

    for x in z:
    a = int(x)

    if(a%400==0):
    print('閏年')
    elif(a%100==0):
    print('平年')
    elif(a%4==0):
    print('閏年')
    else:
    print('平年')
    這個程式可以判斷輸入的年份是閏年或平年

    回覆刪除
  82. # 台中女中程式解題系統 矩形面積

    H,W = map(int,input("輸入兩個數用空格隔開\n").split( ))
    A = H*W
    print(A)

    回覆刪除
  83. 作者已經移除這則留言。

    回覆刪除
  84. # 台中女中程式解題系統 刮刮樂兌獎(二)

    A , B = map(int,input("輸入兩個0~9的數用空格隔開\n").split( ))
    C = 0
    if A % 2 != 0:
    C += 100
    elif B == 2 or B == 5 or B ==8:
    C += 200
    elif A == B:
    C += 50
    else:
    print("未中獎")
    print("獎金為",C,"元")

    回覆刪除
  85. 作者已經移除這則留言。

    回覆刪除
  86. #成績登記系統
    #把list[0]改成座號1~num號的排序
    def n(f):
    for a in range(1,num+1):
    f[0][a-1]=a
    num=int(input('請輸入要從1號登記到幾號:'))
    #創立各科目的二維list,list[0]代表座號,list[1]代表成績
    chinese=[[0]*(num),[0]*(num)]
    math=[[0]*(num),[0]*(num)]
    english=[[0]*(num),[0]*(num)]
    n(chinese)
    n(math)
    n(english)
    ns=1#提示使用者該輸入的座號成績之變數
    #使用者輸入成績
    for i in range(num):
    print(f'請輸入{ns}號成績')
    es=int(input('請輸入英文成績:'))
    english[1][i]=es
    ms=int(input('請輸入數學成績:'))
    math[1][i]=ms
    cs=int(input('請輸入國文成績:'))
    chinese[1][i]=cs
    ns+=1
    #輸出結果
    print(chinese)
    print(math)
    print(english)

    回覆刪除
    回覆
    1. #成績登記系統
      #把list[0]改成座號1~num號的排序
      def n(f):
      for a in range(1,num+1):
      f[0][a-1]=a
      num=int(input('請輸入要從1號登記到幾號:'))
      #創立各科目的二維list,list[0]代表座號,list[1]代表成績
      chinese=[[0]*(num),[0]*(num)]
      math=[[0]*(num),[0]*(num)]
      english=[[0]*(num),[0]*(num)]
      n(chinese)
      n(math)
      n(english)
      ns=1#提示使用者該輸入的座號成績之變數
      #使用者輸入成績
      for i in range(num):
      print(f'請輸入{ns}號成績')
      es=int(input('請輸入英文成績:'))
      english[1][i]=es
      ms=int(input('請輸入數學成績:'))
      math[1][i]=ms
      cs=int(input('請輸入國文成績:'))
      chinese[1][i]=cs
      ns+=1
      #輸出結果
      print(f'chinese:{chinese}')
      print(f'math:{math}')
      print(f'english:{english}')
      #成績查詢系統
      def inquire():
      while True:
      inq_num=int(input('請輸入要查詢的座號(輸入0即可退出):'))
      if inq_num==0:
      print('感謝您的使用')
      break
      sub=input('請輸入要查詢的科目成績\n輸入math,english,chinese\n')
      if sub=='math':
      print(math[1][inq_num-1])
      elif sub=='english':
      print(english[1][inq_num-1])
      elif sub=='chinese':
      print(chinese[1][inq_num-1])
      else:
      print('輸入錯誤')
      inquire()

      這個程式改了輸出成績的程式,並且增加了成績搜尋的程式

      刪除
  87. /*找正因數*/
    #include
    int main(){
    int n,number;
    printf("N = ");
    scanf("%d", &n);
    for(number = 1 ; number <= n ; number++){
    if (n % number == 0)
    printf("%3d", number);
    }
    }

    回覆刪除
    回覆
    1. /*韓信點兵*/
      #include
      int main(){
      int a;
      while (!(a%3 == 2 && a%5 == 3 && a%7 == 2) ){
      ++a;
      }
      printf("%d\n", a);
      return 0;
      }

      刪除
  88. public class test
    {
    public static void main(String[] args)
    {
    System.out.println("Hello World");
    }
    }
    java 的Hello World

    回覆刪除
  89. ytp2022初賽第一題https://www.tw-ytp.org/wp-content/uploads/2022/12/YTP2022PreliminaryContest_S1.pdf

    打倒怪獸 - Defeat the monster

    data1 = input()
    data2 = input()

    a = len(data1)
    result=[]

    for i in range(len(data2)- a + 1):
    b = data2[i:i+a]
    check = []
    e = 0
    for c in range(len(data1)):
    if b[c]==data1[c]:
    check.append(0)
    else:
    check.append(1)
    for d in check:
    e = e + d
    if e<=1:
    result.append(b)


    if result ==[]:
    print('Not Found')
    else:
    result.sort()
    for i in result:
    print(i)

    回覆刪除
  90. #題目:數字比較

    if __name__ == '__main__':
    i = int(input("請輸入第一個正整數:"))
    j = int(input("請輸入第二個正整數:"))
    if i > j:
    print ('%d 大於 %d' % (i,j))
    elif i == j:
    print ('%d 等於 %d' % (i,j))
    elif i < j:
    print ('%d 小於 %d' % (i,j))
    else:
    print ('未知')

    回覆刪除
  91. #題目:學習使用按位異或 ^

    if __name__ == '__main__':
    a = 0o77
    b = a ^ 3
    print ('The a ^ 3 = %d' % b)
    b ^= 7
    print ('The a ^ b = %d' % b)

    回覆刪除
  92. #题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
    a=2
    b=1
    re=0
    for i in range(1,21):
    re+=a/b
    x=a
    a+=b
    b=x
    print(re)

    回覆刪除
  93. #题目:利用递归函数调用方式,将所输入的字符,以相反顺序打印出来。
    b=input("請輸入一串字:")
    for i in range(len(b)-1,0,-1):
    print(b[i])
    print(b[0])

    回覆刪除
  94. 作者已經移除這則留言。

    回覆刪除
  95. import pandas as pd
    import matplotlib.pyplot as plt
    import random

    pd.set_option('display.max_rows', None)

    def f(x, a=1, b=0):
    return a*x+b

    randomdata = pd.DataFrame(columns=["x","y"])

    for j in range(4):
    for i in range(25):
    a = f(i,a=-1,b=10) + random.uniform(1,20)
    randomdata.loc[len(randomdata)] = {"x":i,"y":a}

    x = randomdata["x"]
    y = randomdata["y"]

    plt.scatter(x,y)
    plt.show()
    randomdata.to_csv("./randomdata.csv")

    這個程式可以生成以y=ax+b的線型函數隨機偏移的資料
    以pandas來儲存資料並且匯出成csv檔
    再以matplotlib來顯示資料

    回覆刪除
  96. import numpy as np
    import matplotlib.pyplot as plt
    import pandas as pd

    data = pd.read_csv("./randomdata.csv")

    x = data["x"]
    y = data["y"]
    w = 1
    b = 0
    learning_rate = 0.0001

    fig, ax = plt.subplots()
    plt.ion()

    def loss(x, y, w, b):
    loss = 0
    for i in range(len(x)):
    loss += (w * x[i] + b - y[i]) ** 2
    return loss

    def compute_gradient(x, y, w, b):
    w_gradient = 0
    b_gradient = 0
    for i in range(len(x)):
    w_gradient += x[i] * (x[i] * w + b - y[i])
    b_gradient += (x[i] * w + b - y[i])
    return w_gradient, b_gradient

    plt.scatter(x, y)
    line, = ax.plot([-5, 30], [-5*w + b, 30 * w + b])

    for i in range(2000):
    print(f"w:{w:10.2e}, b:{b:10.2e}, loss:{loss(x, y, w, b):10.2e}")
    w_gradient, b_gradient = compute_gradient(x, y, w, b)
    w -= learning_rate * w_gradient
    b -= learning_rate * b_gradient

    line.set_ydata([-5*w + b, 30 * w + b])
    plt.draw()
    plt.pause(0.01)

    plt.ioff()
    plt.show()

    這個程式是以剛剛以y=3x+10隨機生成的data來算出的此資料的遞迴直線
    這個程式是用 梯度下降法 一種機器學習常會用到的一種方法
    這個程式的核心就是要先把 loss函數 做w的偏微分 和b的偏微分
    再讓程式跑個2000次來慢慢地讓電腦算出遞迴直線
    最後用matplotlib把資料和遞迴值線的變化可視化

    如果想看此資料的遞迴直線變化 要先把我前一個隨機生成2維資料的程式載下來並執行後
    把生成出來的.csv檔放到跟此程式相同的資料夾再執行此程式

    我自己測試後的結果是算出來的遞迴直線為y=3.1x+9.07跟 y=3x+10可以說是非常接近
    至於那些誤差是因為我生成的資料是隨機的

    回覆刪除
  97. 作者已經移除這則留言。

    回覆刪除
  98. #一元二次方程式的解
    print('輸入格式為ax^2+bx+c=0')
    a,b,c=map(int,input('請輸入a,b,c的值(請依照上面格式做輸入)\n').split())
    D=b**2-4*a*c #判別式計算
    if D==0:
    ans=-b/2*a
    print(f'解為{ans}(重根)')
    elif D>0:
    ans1=-b+D**0.5/2*a
    ans2=-b-D**0.5/2*a
    print(f'解為{ans1} or {ans2}')
    else:
    print('此方程式無解')

    回覆刪除
  99. #题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
    a=10
    for i in range(4):
    a+=2
    print(a)

    回覆刪除
  100. #题目:给一个不多于5位的正整数,要求:一、逆序打印出各位数字,二、求它是几位数。
    n=a=int(input("請輸入一個不多於五位數的數:"))
    data=[]
    for i in range(4):
    if n // 10 > 1 :
    data.append(n%10)
    print(n % 10)
    n //= 10
    for j in range(len(data)):
    a //= 10
    data.append(a)
    print(a)
    print("共有",len(data),"位數")

    回覆刪除
  101. #猜數字遊戲
    import random#導入隨機取數的套件
    m=int(input('請輸入猜的數字範圍的最大值:'))

    #創立空列表
    l=[0]*m

    #隨機取數
    for i in range(1,m+1):
    l[i-1]=i
    r=l[random.randint(0,m-1)]

    #猜的次數
    times=1

    #建立範圍變數:最小值、最大值
    min=0
    max=0

    #比較猜值和輸入值
    while True:
    n=int(input('請輸入您猜的數字:'))

    if n>m or n<1:#輸入的數字不在範圍內
    print('輸入錯誤請重新輸入')
    continue

    elif r==n:#輸入值跟猜值一樣
    print(f'恭喜您猜對了!\n您花了{times}次猜到正解(輸入錯誤的次數不算)')
    break

    elif times==1:#若為第一次輸入
    if n>r:#第一次輸入值比猜值大
    max=n
    min=1
    print(f'請輸入猜的數字\n提示:{min}~{max}之間')
    times+=1
    else:#第一次輸入值比猜值小
    min=n
    max=m
    print(f'請輸入猜的數字\n提示:{min}~{max}之間')
    times+=1

    elif n>r:#若輸入值比猜值大(防止使用者輸入錯誤)
    if n>max:#輸入值大於範圍
    print(f'請輸入猜的數字\n提示:{min}~{max}之間')
    else:#輸入值在範圍內
    max=n#把輸入值調至為最大值
    print(f'請輸入猜的數字\n提示:{min}~{max}之間')
    times+=1

    else:
    if n<min:#若輸入值比範圍小(防止使用者輸入錯誤)
    print(f'請輸入猜的數字\n提示:{min}~{max}之間')
    else:
    min=n#把輸入值調至為最小值
    print(f'請輸入猜的數字\n提示:{min}~{max}之間')
    times+=1

    不用random.randint()直接當成變數做使用是因為若使用者亂輸入的話,沒辦法用判別式判斷使用者亂輸入(因為數值沒辦法跟函式的值做比較)

    回覆刪除
  102. //判斷質數
    #include
    int main(){
    int n;
    printf("N = ");
    scanf("%d", &n);
    int aOfDivisor = 0;
    int a;
    for (a = 2; a < n; ++a){
    if(n % a == 0){
    ++aOfDivisor;
    }
    }
    if (aOfDivisor == 0){
    printf("Yes!\n");
    } else {
    printf("No!\n");
    }
    return 0;
    }

    回覆刪除
    回覆
    1. // 韓信點兵最大值練習
      #include
      int main(){
      int n;
      printf("N = ");
      scanf("%d", &n);
      int a;
      for (a = n; a >= 0; --a){
      if (a % 3 == 2 && a % 5 ==3 && a % 7 ==2){
      printf("%d", a);
      return 0;
      }
      }
      return 0;
      }

      刪除
    2. 作者已經移除這則留言。

      刪除
  103. 7-9
    #題目:有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最後留下的是原來第幾號的那位
    if __name__ == '__main__':
    nmax = 50
    n = int(raw_input('請輸入總人數:'))
    num = []
    for i in range(n):
    num.append(i + 1)

    i = 0
    k = 0
    m = 0

    while m < n - 1:
    if num[i] != 0 : k += 1
    if k == 3:
    num[i] = 0
    k = 0
    m += 1
    i += 1
    if i == n : i = 0

    i = 0
    while num[i] == 0: i += 1
    print num[i]

    回覆刪除
  104. 7-9
    #題目:寫一個函數,求一個字符串的長度,在main函數中輸入字符串,並輸出其長度
    f __name__ == '__main__':
    s = raw_input('please input a string:\n')
    print 'the string has %d characters.' % len(s)

    回覆刪除
  105. import tensorflow as tf
    from tensorflow import keras
    from keras import datasets, layers, optimizers
    import numpy as np

    (xs_train, ys_train), (xs_test, ys_test) = datasets.mnist.load_data()

    xs_train = tf.convert_to_tensor(xs_train,dtype=tf.float32)/255
    ys_train = tf.convert_to_tensor(ys_train,dtype=tf.int32)
    ys_train = tf.one_hot(ys_train,depth=10)

    db = tf.data.Dataset.from_tensor_slices((xs_train,ys_train)).batch(255)

    model = keras.Sequential([
    layers.Dense(512,activation='relu'),
    layers.Dense(256,activation='relu'),
    layers.Dense(10)
    ])

    optimizer = optimizers.SGD(learning_rate=0.001)

    def train_epoch(epoch):
    for step, (x,y) in enumerate(db):
    with tf.GradientTape() as tape:
    x = tf.reshape(x,(-1,28*28))

    out = model(x)

    loss = tf.reduce_sum(tf.square(out-y))/x.shape[0]

    grads = tape.gradient(loss,model.trainable_variables)

    optimizer.apply_gradients(zip(grads, model.trainable_variables))
    if step %100 == 0:
    print(epoch,step,"loss:",loss.numpy())

    def train():
    for epoch in range(30):
    train_epoch(epoch)

    train()

    這是一個用mnist的手寫數字資料來訓練的圖片辨識AI
    不過我還沒研究好該怎麼使用訓練好的模型
    他用了keras.Sequential創造了一個隱藏層為兩層的模型
    並在之後使用梯度下降的方式來更新權重(W)跟偏置(B)

    回覆刪除
  106. import tensorflow as tf
    from tensorflow import keras
    from keras import datasets
    import numpy as np
    import os

    os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

    (x, y), _ = datasets.mnist.load_data()

    x:tf.Tensor = tf.convert_to_tensor(x,dtype=tf.float32)/255
    y:tf.Tensor = tf.convert_to_tensor(y,dtype=tf.int32)

    train_db = tf.data.Dataset.from_tensor_slices((x, y )).batch(128)
    train_iter = iter(train_db)

    sample = next(train_iter)


    lr = 0.001
    w1 = tf.Variable(tf.random.truncated_normal([784,256],stddev=0.1))
    b1 = tf.Variable(tf.zeros([256]))
    w2 = tf.Variable(tf.random.truncated_normal([256,128],stddev=0.1))
    b2 = tf.Variable(tf.zeros([128]))
    w3 = tf.Variable(tf.random.truncated_normal([128,10],stddev=0.1))
    b3 = tf.Variable(tf.zeros([10]))

    for epoch in range(10): #for db 10time
    for step, (x,y) in enumerate(train_db): #for every batch
    x = tf.reshape(x, [-1, 28*28])

    with tf.GradientTape() as tape:
    # [b,784]@[784,256]+[256] => [b,256]+[256] => [b,256] + [b,256] => [b,256]
    h1 = x@w1 + tf.broadcast_to(b1, [x.shape[0],256])
    h1 = tf.nn.relu(h1)

    h2 = h1@w2 + b2
    h2 = tf.nn.relu(h2)

    out = h2@w3 + b3

    y_onehot = tf.one_hot(y,depth=10)

    loss = tf.square(y_onehot-out)
    loss = tf.reduce_mean(loss)

    #compute gradient
    gradients = tape.gradient(loss,[w1,b1,w2,b2,w3,b3])

    #w = w - lr * w_gradient
    # w1 = w1 - lr*gradients[0]
    # b1 = b1 - lr*gradients[1]
    # w2 = w2 - lr*gradients[2]
    # b2 = b2 - lr*gradients[3]
    # w3 = w3 - lr*gradients[4]
    # b3 = b3 - lr*gradients[5]
    w1.assign_sub(lr*gradients[0])
    b1.assign_sub(lr*gradients[1])
    w2.assign_sub(lr*gradients[2])
    b2.assign_sub(lr*gradients[3])
    w3.assign_sub(lr*gradients[4])
    b3.assign_sub(lr*gradients[5])

    if step %100 == 0:
    print(epoch, step, "loss: ",float(loss))

    這也是一個用mnist的手寫數字資料來訓練的圖片辨識AI
    不過跟前一個的差別是 這個不是用tensorflow裡現成的方法來創造模型
    簡單來說這個程式把前一個程式的東西都拆開來寫 可以讓人比較了解Deep Learning的流程

    回覆刪除
  107. # 台中女中程式解題系統 校內初賽 3.HAPPY
    A = input()
    d = {}
    for i in A:
    if i not in d:
    d[i] = 1
    else:
    d[i] += 1
    #利用get()來獲得"H" "A" "P" "P" "Y" 若不是就返回0(從網路上找來的方法
    gifts = min( d.get("H", 0), d.get("A", 0), d.get("P", 0)//2, d.get("Y", 0))
    print(gifts)

    回覆刪除
  108. # 台中女中程式解題系統 初級題庫 6.Hello, XXX!
    name = input()
    print("Hallo, {}!".format(name))

    回覆刪除
  109. 作者已經移除這則留言。

    回覆刪除
  110. 作者已經移除這則留言。

    回覆刪除
  111. 題目:判斷兩個字串是否為同構字串
    def isomorphic_strings(str1, str2):
    if len(str1) != len(str2):
    return False

    mapping = {}
    used_chars = set()

    for i in range(len(str1)):
    char1 = str1[i]
    char2 = str2[i]

    if char1 in mapping:
    if mapping[char1] != char2:
    return False
    else:
    if char2 in used_chars:
    return False

    mapping[char1] = char2
    used_chars.add(char2)

    return True

    string1 = input("請輸入第一個字串:")
    string2 = input("請輸入第二個字串:")

    if isomorphic_strings(string1, string2):
    print("Yes")
    else:
    print("No")

    回覆刪除
  112. 題目:計算字串中的大寫字母數量
    def count_uppercase_letters(string):
    count = 0
    for char in string:
    if char.isupper():
    count += 1
    return count

    string = input("請輸入一個字串:")

    uppercase_count = count_uppercase_letters(string)

    print("大寫字母的數量為:", uppercase_count)

    回覆刪除
  113. // 韓信點兵求前三小的數
    #include
    int main(){
    int count, a = 0;
    for (count = 0; count > -1; ++count){
    if (count % 3 == 2 && count % 5 == 3 && count % 7 == 2){
    a++;
    printf("%d ", count);
    }
    if ( a >= 3){
    break;
    }
    }
    return 0;
    }

    回覆刪除
    回覆
    1. //印出九九乘法表
      #include
      int main(){
      int a = 2, b, c = 1;
      for (b = 1; a <= 9; ++b){
      printf("%d * %d = %d\n", a, b, a*b);
      if (b == 9){
      ++a;
      b = 0;
      }
      }
      return 0;
      }

      刪除
  114. #題目:https://zerojudge.tw/ShowProblem?problemid=a053
    #計分系統
    m=int(input('請輸入答對的題數:'))
    if m<=10:
    result=m*6
    print(f'得分為{result}分')
    elif m<=20:
    result=(m-10)*2+10*6
    print(f'得分為{result}分')
    elif m<40:
    result=(m-20)*1+10*2+10*6
    print(f'得分為{result}分')
    else:
    print('得分為100分')

    回覆刪除
  115. #把十進制轉為2、8或16進制
    cl = [] #存放要轉變進制的十進制數字


    def p(nsl, result=''): #定義輸出結果的函式
    for t in range(len(nsl)): #重複已反向的列表長度之次數
    nsl = list(map(str, nsl)) #把列表內的型態轉為字串型態
    result = ''.join(nsl) #連結列表中所有字串 join用法:.join(iterable可迭代物)
    return result #回傳結果


    while True: #讓使用者做連續輸入
    try:
    i_n = list(map(int, input('請輸入要轉換的十進位數字:\n').split('\n')))
    cl += i_n #輸入內容存放至cl列表中等等做處理
    except:
    break

    for i in cl:
    system = int(input('請輸入要轉換的進制(2 or 8 or 16):'))
    d=i #建立計算結果列表函數的變數
    long=0 #結果列表記錄長度的變數
    while d!=0:
    d//=system #判別轉換進制中所需要用到的列表長度
    long+=1
    sl = [0] * (long) #建立轉變進制的結果列表
    l = 0 #取列表中項目所使用的變數
    if system == 16:
    while True:
    if i == 0: #沒得除了
    nsl = list(reversed(sl)) #反向結果列表,並存入nsl列表中
    print(p(nsl))
    break
    else:
    change = i % system #取除以進制的餘數
    #判斷10~15間的餘數改為英文
    if change == 10:
    change = 'A'
    elif change == 11:
    change = 'B'
    elif change == 12:
    change = 'C'
    elif change == 13:
    change = 'D'
    elif change == 14:
    change = 'E'
    elif change == 15:
    change = 'F'
    sl[l] = change #把餘數值放到結果列表中
    l += 1 #取下一項所以變數加一
    i //= system
    elif system == 2 or system == 8:
    while True:
    if i == 0:
    nsl = list(reversed(sl))
    print(p(nsl))
    break
    else:
    change = i % system
    sl[l] = change
    l += 1
    i //= system
    else:
    print('輸入錯誤')

    回覆刪除
  116. #题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
    n=int(input("請輸入一個五位數:"))
    if n % 10 ==n // 10000 and n % 100 //10 == n // 1000 % 10:
    print(n,"是回文")
    else:
    print("此數不是回文")

    回覆刪除
  117. #题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。
    a=str(input("請輸入第一個字母:"))
    if a == "s":
    b=input("請輸入第二個字母:")
    if b == "u":
    print("星期日")
    elif b == "a":
    print("星期六")
    else:
    print("輸入錯誤")
    elif a == "m":
    print("星期一")
    elif a == "t":
    b=input("請輸入第二個字母:")
    if b == "u":
    print("星期二")
    elif b == "h":
    print("星期四")
    else:
    print("輸入錯誤")
    elif a == "w":
    print("星期三")
    elif a == "f":
    print("星期五")
    else:
    print("輸入錯誤")

    回覆刪除
  118. # 台中女中程式解題系統 基礎題庫 a050: 九九乘法表

    N = int(input())
    for i in range(1,N+1):
    for j in range(1,N+1):
    print("%d * %d ="%(i,j),i*j,end=" ")
    print()

    回覆刪除
  119. # 台中女中程式解題系統 初級題庫 b005: 熱門點播

    A = list(map(int, input("請輸入明信片上的點播歌曲編號:").split()))
    count = {}
    for i in A:
    if i in count:
    count[i] += 1
    else:
    count[i] = 1

    number = 0
    total = 0
    for Z, X in count.items():
    if X > total:
    total = X
    number = Z

    print(number, total)

    回覆刪除
  120. #題目:https://zerojudge.tw/ShowProblem?problemid=b558
    #求列表中的第n項
    nl=[]
    while True:
    try:
    l=list(map(int,input('請輸入要求列表中的第幾項(按q即可退出):').split()))
    nl+=l
    except:
    break
    for i in nl:
    D=1
    n=1
    a=1
    while D<i:
    n+=a
    a+=1
    D+=1
    print(f'第{i}項是{n}')

    回覆刪除
  121. #題目網址:https://zerojudge.tw/ShowProblem?problemid=a020

    #身份證檢驗
    def city():
    ascii=[]#建立空列表存放身份證英文列表
    for a in range(65,91):#建立身分證英文列表
    ascii+=chr(a)#利用ASCII編碼建立連續的英文列表
    cn=[n for n in range(10,36)]#建立對應身分證的數字列表
    cn[8]=34
    change=9
    while change<14:
    cn[change]=cn[change]-1
    change+=1
    cn[14]=35
    change=15
    while change<22:
    cn[change]=cn[change]-2
    change+=1
    cn[23]=30
    cn[24]=31
    cn[25]=33
    return ascii,cn#回傳兩個列表
    ID_card=input('請輸入要檢驗的身分證字號:\n')#使用者輸入
    s=ID_card[0]#取出開頭英文字母
    el,nl=city()#建立兩個列表存放函式所回傳的列表
    for num in el:#尋找開頭字母存在列表中第幾項
    if s==num:#判斷字母是否相同
    d=el.index(s)#把尋找到的字母為第幾項用變數存取
    ecn=nl[d]#取數字列表中所對應的英文字母之數字
    tens=ecn//10#取字母對應之數字的十位數
    ones=ecn%10#取字母對應之數字的個位數
    sum=ones*9+tens
    m=8#要乘的倍數
    for i in range(1,9):
    sum+=int(ID_card[i])*m
    m-=1
    sum+=int(ID_card[9])
    result=sum%10
    if result==0:#判斷結果
    print('real')
    else:
    print('fake')

    回覆刪除
  122. // 用文字繪製空心長方形
    #include
    int main(){
    int n;
    printf("N = ");
    scanf("%d", &n);
    int a, i;
    for (a = 1; a <= n; ++a){
    printf("*");
    }
    printf("\n");
    for (i = 1; i <= n - 2; ++i){
    printf("*");
    for (a = 1; a <= n - 2; ++a){
    printf(" ");
    }
    printf("*\n");
    }
    for (a = 1; a <= n; ++a){
    printf("*");
    }
    printf("\n");
    return 0;
    }

    回覆刪除
    回覆
    1. // 用文字繪製空心長方形
      #include
      int main(){
      int n;
      printf("N = ");
      scanf("%d", &n);
      int a, i;
      for (a = 1; a <= n; ++a){
      for (i = 1; i <= n; ++i){
      if(a == 1 || a == n || i == 1 || i ==n){
      printf("*");
      } else {
      printf(" ");
      }
      }
      printf("\n");
      }
      return 0;
      }

      刪除
  123. #题目:对10个数进行排序。
    data=[]
    for i in range(10):
    a=int(input("請輸入一個數字:"))
    data.append(a)
    data.sort()
    print(data)

    回覆刪除
  124. #题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
    a = [1,4,6,9,13,16,19,28,40,100]
    b=int(input("請輸入一個數字:"))
    a.append(b)
    a.sort() #原來的規律是由小到大排序
    print(a)

    回覆刪除
  125. #題目:計算元組元素的總和

    def compute_tuple_sum(tuple_nums):
    sum = 0
    for num in tuple_nums:
    sum += num
    return sum

    tuple_nums = list(map(int,input("請輸入數字").split()))

    total_sum = compute_tuple_sum(tuple_nums)

    print("元組元素的總和為:", total_sum)

    回覆刪除
  126. #題目:合併元組

    def merge_tuples(tuple1, tuple2):
    merged_tuple = tuple1 + tuple2
    return merged_tuple

    tuple1 = (1, 2, 3)
    tuple2 = (4, 5, 6)

    merged = merge_tuples(tuple1, tuple2)

    print("合併後的元組:", merged)

    回覆刪除
  127. import tensorflow as tf
    from tensorflow import keras
    from keras import datasets
    import numpy as np
    import os

    os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

    (x, y), (x_test, y_test) = datasets.mnist.load_data()

    x = tf.convert_to_tensor(x,dtype=tf.float32)/255
    y = tf.convert_to_tensor(y,dtype=tf.int32)
    x_test = tf.convert_to_tensor(x_test,dtype=tf.float32)/255
    y_test = tf.convert_to_tensor(y_test,dtype=tf.int32)

    train_db = tf.data.Dataset.from_tensor_slices((x, y )).batch(128)
    test_db = tf.data.Dataset.from_tensor_slices((x_test,y_test)).batch(128)


    lr = 0.01
    w1 = tf.Variable(tf.random.truncated_normal([784,256],stddev=0.1))
    b1 = tf.Variable(tf.zeros([256]))
    w2 = tf.Variable(tf.random.truncated_normal([256,128],stddev=0.1))
    b2 = tf.Variable(tf.zeros([128]))
    w3 = tf.Variable(tf.random.truncated_normal([128,10],stddev=0.1))
    b3 = tf.Variable(tf.zeros([10]))

    for epoch in range(19): #for db 10time

    train_db.shuffle(600000)

    for step, (x,y) in enumerate(train_db): #for every batch
    x = tf.reshape(x, [-1, 28*28])

    with tf.GradientTape() as tape:
    # [b,784]@[784,256]+[256] => [b,256]+[256] => [b,256] + [b,256] => [b,256]
    h1 = x@w1 + b1
    h1 = tf.nn.relu(h1)

    h2 = h1@w2 + b2
    h2 = tf.nn.relu(h2)

    out = h2@w3 + b3

    y_onehot = tf.one_hot(y,depth=10)

    loss = tf.square(y_onehot-out)
    loss = tf.reduce_mean(loss)
    #compute gradient
    gradients = tape.gradient(loss,[w1,b1,w2,b2,w3,b3])

    #w = w - lr * w_gradient
    w1.assign_sub(lr*gradients[0])
    b1.assign_sub(lr*gradients[1])
    w2.assign_sub(lr*gradients[2])
    b2.assign_sub(lr*gradients[3])
    w3.assign_sub(lr*gradients[4])
    b3.assign_sub(lr*gradients[5])

    if step %100 == 0:
    print(epoch, step, "loss: ",float(loss))

    #test

    total_correct, total_num = 0,0
    for step ,(x,y) in enumerate(test_db):
    x = tf.reshape(x, [-1, 28*28])

    h1 = x@w1 + b1
    h1 = tf.nn.relu(h1)

    h2 = h1@w2 + b2
    h2 = tf.nn.relu(h2)

    out = h2@w3 + b3
    prob = tf.nn.softmax(out, axis=1)
    pred = tf.argmax(out,axis=1,output_type=tf.int32)

    correct = tf.reduce_sum(tf.cast(tf.equal(pred, y),dtype=tf.int32))
    total_correct+= correct.numpy()
    total_num+=x.shape[0]

    acc = total_correct/ total_num

    print("acc: ",acc)

    增加了測試的部分 精準度可以到80幾%

    回覆刪除
  128. #題目:https://zerojudge.tw/ShowProblem?problemid=a038

    #數字翻轉

    num=input('請輸入要反向的數字:')#使用者輸入
    l=[0]*len(num)#建立要分別存放字串的列表
    n=0#為項數的變數
    for i in num:#把使用者輸入的字串拆開並一個個加到列表中
    l[n]=int(i)#轉換成數字加到列表中
    n+=1
    times=0#次數的判斷
    pl=list(reversed(l))#反向列表

    #從開頭判斷是否為0,是0要刪除那一項,若開頭不為0則直接輸出
    for t in range(len(pl)):#重複pl的長度次
    while pl[t]==0:#判斷第t項是否等於0
    if times==0:
    del pl[times]#刪除為0的那一項
    times+=1
    else:
    del pl[times-1]
    times+=1
    else:
    pl=list(map(str,pl))#把列表再轉回字串型態
    print(''.join(pl))#連結列表中字串並輸出結果
    break#跳出迴圈

    回覆刪除
  129. 作者已經移除這則留言。

    回覆刪除
  130. #題目:https://zerojudge.tw/ShowProblem?problemid=a065

    #提款機密碼

    I=input('請輸入字母:')#使用者輸入
    l=[]#建立存放使用者輸入的列表
    for i in I:
    l+=i#依序放入列表中
    ascii=[0]*len(l)#建立轉換ASCII的列表
    for n in range(len(l)):#重複列表的長度次
    r=int(ord(l[n]))#轉換ASCII碼
    ascii[n]=r#放入存放ASCII的列表中
    result=''#建立存放結果的字串
    for t in range(len(ascii)):
    if t==6:#最後一項沒有得比直接跳出迴圈
    break
    elif ascii[t]>ascii[t+1]:#若前項大於後項
    reduce=ascii[t]-ascii[t+1]#前項減後項
    result+=str(reduce)#轉變成字串存到結果中
    elif ascii[t]<ascii[t+1]:#若前項小於後項
    reduce=ascii[t+1]-ascii[t]#後項減前項
    result+=str(reduce)##轉變成字串存到結果中
    else:#若前項與後項相同
    result+='0'
    print(result)#輸出結果

    這題若依題意做輸入的話,使用者必須完全輸入正確才可得到正確答案。

    但這個程式要輸入小寫也是能正確執行的

    若使用者輸入的字母只有全大寫跟全小寫的區別的話,結果還是相同的;但若混合輸入大小寫字母的話,答案就會跟全大寫不同

    回覆刪除
  131. # 台中女中程式解題系統 初級題庫 b018: 1000

    N = int(input())
    num1 = 1
    for i in range(1,N+1):
    num1 *= i
    if N >= 1 and N <= 1000:
    count = num1
    print(count)

    回覆刪除
  132. #两个 3 行 3 列的矩阵,实现其对应位置的数据相加,并返回一个新矩阵:

    X = [[12,7,3],
    [4 ,5,6],
    [7 ,8,9]]

    Y = [[5,8,1],
    [6,7,3],
    [4,5,9]]

    data=[]

    for i in range(0,3):
    for j in range(0,3):
    result=X[i][j]+Y[i][j]
    data.append(result)
    print(data)
    data.clear()

    回覆刪除
  133. #题目:数字比较。
    a=int(input("請輸入第一個數:"))
    b=int(input("請輸入第二個數:"))
    if a > b:
    print(a,">",b)
    elif a < b:
    print(a,"<",b)
    elif a == b:
    print(a,"=",b)
    #题目:求输入数字的平方,如果平方运算后小于 50 则退出。
    for i in range(100):
    n=int(input("請輸入一個數:"))
    if n**2 < 50:
    break
    else:
    print(n**2)

    回覆刪除
  134. # 台中女中程式解題系統 初級題庫 b033: 兩隻猴子

    S1 = input()
    S2 = input()
    A = len(S1)
    B = len(S2)
    max_num = 0
    dp = [[0] * (B + 1) for _ in range(A + 1)]# 建立動態表格 初始化為0 dp[i-1][j] = 上 dp[i][j-1] = 左
    for i in range(1,A+1):# 從第一個字元開始查詢兩段文字的每個字元
    for j in range(1,B+1):
    if S1[i-1] == S2[j-1]:# 兩個字相同
    dp[i][j] = dp[i-1][j-1] +1 # 左上格子值加1
    max_num = max(max_num,dp[i][j]) # 更新最長相同內容的長度
    else:
    dp[i][j] = max(dp[i][j - 1], dp[i - 1][j]) # 選擇左方格子和上方格子的較大值

    print(max_num)

    回覆刪除
  135. # 台中女中程式解題系統 初級題庫 迴文 (**)

    A = input()
    C = A ==A[::-1]
    if C:
    print("是回文")
    else:
    print("不是回文")

    回覆刪除
  136. import requests
    from bs4 import BeautifulSoup

    # 發送GET請求獲取網頁內容
    url = "https://zh.wikipedia.org/zh-tw/Wiki" # 要爬取的網頁URL
    response = requests.get(url)
    html_content = response.text

    # 解析網頁內容
    soup = BeautifulSoup(html_content, "html.parser")

    # 使用beautifulsoup4提供的方法進行資料擷取
    # 這裡只是舉例,根據網頁的結構和需要擷取的資料,方法可能有所不同
    title = soup.title.text
    paragraphs = soup.find_all("p")

    # 輸出獲取的資料
    print("網頁標題:", title)
    print("段落數量:", len(paragraphs))
    for i, p in enumerate(paragraphs):
    print(f"段落 {i+1}:{p.text}")

    回覆刪除
  137. #巢狀while迴圈

    i = 0
    while i < 3: # 外層迴圈
    j = 0
    while j < 3: # 內層迴圈
    print(f"外層迴圈變數:{i},內層迴圈變數:{j}")
    j += 1
    i += 1

    回覆刪除
  138. #題目:https://zerojudge.tw/ShowProblem?problemid=a147

    #Print it all

    l=[]#建立一個存放使用者輸入的列表
    while True:
    n=list(map(int,input('請輸入一個整數').split()))#讓使用者做輸入
    if n==[0]:#判斷是否輸入0
    break#是0跳出迴圈
    else:#不是0
    l+=n#把使用者輸入加入至列表中
    for times in l:#從列表中的資料分別取出存到times中
    rl=['']*(times+1)#建立存放結果的列表(型態是字串)
    for n in range(times+1):#重複範圍0~times+1
    if n%7!=0:#判斷不等於0
    rl[n]=str(n)#把整數型態轉換字串型態再加到列表中
    else:#迴圈結束前執行
    while '' in rl:#當有空白的字串存在列表中
    rl.remove('')#刪除空白字串
    result=' '.join(rl)#連結列表中所有的字串
    print(result)#輸出結果

    回覆刪除
  139. #題目:https://zerojudge.tw/ShowProblem?problemid=b971

    #等差數列

    a1,an,d=map(int,input('請輸入首項、末項及公差\n(用空白隔開):').split())#讓使用者做輸入
    pl=[]#建立空列表
    time=int((an-a1)/d+1)#計算迴圈長度
    for i in range(time):
    pl+=[a1+d*i]#把等差數列加入空列表
    pl=list(map(str,pl))#把列表中數字型態轉為字串型態
    result=' '.join(pl)#連結字串,sep=空白
    print(result)#輸出結果

    回覆刪除
  140. //繪製直角三角形
    #include
    int main(){
    int n, i;
    printf("N = ");
    scanf("%d", &n);
    int j;
    printf("*\n");
    for (i = 0; i <= n-3; ++i){
    printf("*");
    for(j = 1; j <= i; ++j){
    printf(" ");
    }
    printf("*\n");
    }
    for (j = 1; j <= n; ++j){
    printf("*");
    }
    printf("\n");
    return 0;
    }

    回覆刪除
    回覆
    1. //座標法繪製直角三角形
      #include
      int main(){
      int n, i;
      printf("N = ");
      scanf("%d", &n);
      int j;
      for(i = 1; i <= n; ++i){
      for (j = 1; j <= n; ++j){
      if (j == 1 || i == n || i == j){
      printf("*");
      } else {
      printf(" ");
      }
      }
      printf("\n");
      }
      return 0;
      }

      刪除
  141. #题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
    data=[]
    a=3
    for i in range(1,51):
    data.append(i)
    for i in range(50):
    while len(data)//3>0:
    data.remove(data[a-1])
    a*=2
    if len(data)<3:
    break
    print(data)

    回覆刪除
    回覆
    1. 我怎麼感覺這題目有點瑕疵...最後一定都會剩下前兩個吧

      刪除
    2. 使用Queue 處理Josephus 問題
      Josephus 問題是古老而著名的數學問題,有 n 個人站成一個圓圈,從第一個人開始報數,報到 m 的人出圈,剩下的人繼續報數,重複此過程,直到所有人都出圈為止。問最後一個出圈的人在原先圓圈中的位置是多少?

      範例:Josephus 問題
      from queue import Queue # 引入 Queue 類別
      def josephus(n, m):
      q = Queue() # 建立一個 Queue 物件
      for i in range(1, n+1): # 將編號 1 ~ n 的人加入 Queue
      q.put(i)
      while q.qsize() > 1: # 只要還有超過一個人在 Queue 中
      for i in range(m-1): # 將 Queue 的前 m-1 個人放到 Queue 的末尾
      q.put(q.get())
      q.get() # 第 m 個人出列
      return q.get() # 傳回最後一個出列的人的編號

      n = 15 # 總人數
      m = 4 # 每次報數的數字
      print("n =", n, ", m =", m)

      # 呼叫 josephus 函式求解並印出答案
      print("最後出圈的, 原先位置:", josephus(n, m))

      # 程式執行結果:
      # n = 15 , m = 4
      # 最後出圈的, 原先位置: 13

      用 Queue 來儲存每個人的編號,每次從 Queue 中取出第 m 個人出列,並將前 m-1 個人放到 Queue 的末尾。最後只剩下一個人時,該人即為最後一個出列的人。

      刪除
  142. #题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n
    n=int(input("請輸入一個數字:"))
    b=0
    if n % 2 == 0:
    for i in range(2,n+1,2):
    b += 1/i
    if n % 2 != 0:
    for i in range(1,n+1,2):
    b += 1/i
    print(b)

    回覆刪除
  143. import requests
    from bs4 import BeautifulSoup

    res = requests.get("https://lt945935.blogspot.com/2023/06/2023.html?sc=1689092511168#c2621278853765450208")
    res.encoding = 'utf-8'

    bs = BeautifulSoup(res.text,'html.parser')
    data = []
    for i in bs.select(".comment-header cite"):
    data.append(i.string)

    for i in set(data):
    print(i,data.count(i))

    這是一個爬蟲 用了requests來訪問網站 並用beautifulsoup4來解析html
    第9行是一個css select來尋找 class = comment-header 底下標籤為cite 的elements
    這個程式在統計 2023-暑假,每日程式上傳區每個人上傳的數量

    回覆刪除
    回覆
    1. output:
      jack 8
      j5 1
      kadzuki0314 23
      minyu 30
      Rex_Chen 27
      chia 2
      matthew0118 26
      sih yu 34
      掄 25

      刪除
  144. #題目:兩個字符串連接程序

    if __name__ == '__main__':
    a = "connection"
    b = "string"

    # 連接字符串
    i= a + b
    print (i)

    回覆刪除
  145. #題目:計算字符串中子串出現的次數。

    if __name__ == '__main__':
    str1 = raw_input('請輸入一個字符串:\n')
    str2 = raw_input('請輸入一個子字符串:\n')
    ncount = str1.count(str2)
    print (ncount)

    回覆刪除
  146. # 台中女中程式解題系統 基礎題庫 a025: 數字倒轉
    N = int(input())
    A = 0
    while N > 0:
    B = N % 10
    A = A * 10 + B
    N = N // 10

    print(A)

    回覆刪除
  147. #題目:https://zerojudge.tw/ShowProblem?problemid=c276

    #xAxB

    n=input('請輸入要給對方猜的數字:')#使用者輸入
    dl=n.split(',')#把使用者輸入一個一個字存到列表中

    #判斷使用者輸入的數字是否重複做輸入
    l=['']*10#建立一個長度為10的空列表
    for lt in range(10):#重複10次(lt從0~9一個個取出)
    l[lt]=lt#把該項轉換成該項的數字
    nl=list(map(str,l))#把列表的資料型態轉換成字串型態
    for d in nl:#從列表中一個個取出字串0~9做判斷
    if nl.count(d)==2:#搜尋d出現的次數,若次數為2會跟遊戲規則不符合
    exit()#直接結束程式


    times=int(input('請輸入要給對方猜的次數:'))

    for t in range(times):#重複要猜的次數
    pn=input('請輸入對方猜的數字:')
    if len(pn)!=len(n):#若輸入的位數不相同
    print('輸入位數錯誤')
    continue#執行下個迴圈
    at=0#建立正確位置的變數
    bt=0#建立位置不正確的變數
    for i in range(len(pn)):#重複對方輸入的該數長度
    if pn[i]==n[i]:#若猜的數字那一位跟原本設的數該值相同
    at+=1#正確的變數+1
    else:#若不是
    bt+=1#錯誤的變數+1
    else:#在小迴圈結束前做處理
    print(f'{at}A{bt}B')#輸出提示
    if at==len(pn):#若正確的數量跟該數長度相同就是答對了
    print(f'恭喜答對\n花了{t+1}次猜到正解')
    exit()#結束程式

    這個程式不只可以判斷四位數的數字,若要其他位數也可以進行判斷

    回覆刪除
  148. # 台中女中程式解題系統 基礎題庫 a029: 連續整數相加(一)
    A, B = map(int, input("輸入兩個數用空格隔開\n").split())
    C = 0
    D = ""
    for i in range(A, B+1):
    D += str(i)
    C += i
    if i != B:
    D += "+" # 添加加號

    print(D + "=" + str(C))

    回覆刪除
  149. # 台中女中程式解題系統 基礎題庫 a030: 連續整數相加(二)

    A, B = map(int, input("輸入兩個數用空格隔開\n").split())
    C = 0
    D = ""
    if A <= B:
    for i in range(A, B+1):
    D += str(i)
    C += i
    if i != B:
    D += "+" # 添加加號
    else:
    for i in range (A,B-1,-1):
    D += str(i)
    C += i
    if i != B:
    D += "+"

    print(D + "=" + str(C))

    回覆刪除
  150. #題目:https://zerojudge.tw/ShowProblem?problemid=c418

    #繪製三角形

    s=int(input('請輸入三角形的大小:'))
    for i in range(1,s+1):
    result='*'*i
    print(result)

    回覆刪除
  151. //已知兩個整數相加是30,相乘是221,求兩個整數
    #include
    int main(){
    int n,a;
    for (a = 0; a <= 30; ++a){
    for (n = 0; n <= a; ++n){
    if (a * n == 221 && a + n == 30){
    printf("a = %d\nn = %d", a, n);
    return 0;
    }
    }
    }
    return 0;
    }

    回覆刪除
    回覆
    1. //已知兩個整數相加是30,相乘是221,求兩個整數
      #include
      int main(){
      int n,a;
      for (n = 15; n <= 30; ++n){
      a = 30 - n;
      if (n * a ==221){
      printf("%d&%d", a, n);
      }
      }
      return 0;
      }

      刪除
  152. #题目:找到年龄最大的人,并输出。
    person = {"li":18,"wang":50,"zhang":20,"sun":22}

    n="li" #先預設從第一個人開始
    for i in person.keys():
    if person[i] > person[n]:
    n = i
    print("%s,%d"%(n,person[n]))

    回覆刪除
  153. #题目:字符串排序。
    #英文竟然也有大小之分!!
    a=input("輸入一串英文:")
    b=input("輸入一串英文:")
    c=input("輸入一串英文:")
    if a > b:
    a,b=b,a
    if a > c:
    a,c=c,a
    if b > c:
    b,c=c,b
    print(a,b,c)
    #英文的大小之分好像是從a~z,由小到大

    回覆刪除
  154. import tensorflow as tf
    from tensorflow import keras
    from keras import datasets, layers, optimizers, Sequential, metrics
    import numpy as np
    import os

    os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

    (x_train,y_train), (x_test,y_test) = datasets.fashion_mnist.load_data()

    def preprossing(x, y):
    x = tf.cast(x,dtype=tf.float32)/255
    y = tf.cast(y,dtype=tf.int32)
    return x, y

    db_train = tf.data.Dataset.from_tensor_slices((x_train,y_train))
    db_train = db_train.map(preprossing).batch(128)
    db_test = tf.data.Dataset.from_tensor_slices((x_test,y_test))
    db_test = db_test.map(preprossing).batch(128)

    model = Sequential([
    layers.Dense(256,activation=tf.nn.relu),
    layers.Dense(128,activation=tf.nn.relu),
    layers.Dense(64,activation=tf.nn.relu),
    layers.Dense(32,activation=tf.nn.relu),
    layers.Dense(10,activation=tf.nn.relu),
    ])
    model.build([None,28*28])

    optimizer = optimizers.Adam(0.001)

    def main():
    for epoch in range(20):
    for step, (x, y) in enumerate(db_train):
    x = tf.reshape(x, [-1,28*28])

    y_onehot = tf.one_hot(y,depth=10)
    with tf.GradientTape() as tape:
    logits = model(x)
    loss = tf.reduce_mean(tf.losses.MSE(y_onehot,logits))
    grads = tape.gradient(loss,model.trainable_variables)
    optimizer.apply_gradients(zip(grads,model.trainable_variables))

    if step % 100 == 0:
    print(epoch, step,"loss:", loss)

    correct_sum = 0
    data_count = 0
    for step, (x, y) in enumerate(db_test):
    x = tf.reshape(x, [-1,28*28])

    logits = model(x)

    prob = tf.nn.softmax(logits, axis=1)
    pred = tf.argmax(prob, axis=1,output_type=tf.int32)

    correct = tf.reduce_sum(tf.cast(tf.equal(y,pred),dtype=tf.int32))
    correct_sum +=int(correct)
    data_count += x.shape[0]
    acc = correct_sum/data_count
    print(epoch, 'acc: ',acc)

    main()

    這是一個使用tensorflow 來寫的一個圖片辨識AI
    這次用到的是fashion mnist的數據集
    這個模型用到的是一個5層的model
    這是訓練20次的精準度
    acc: 0.8878

    回覆刪除
  155. #題目:計算列表中的偶數和

    def compute_even_sum(numbers):
    even_sum = 0
    for num in numbers:
    if num % 2 == 0:
    even_sum += num
    return even_sum

    numbers = list(map(int,input("請輸入數字").split()))

    even_sum = compute_even_sum(numbers)

    print("列表中的偶數和為:", even_sum)

    回覆刪除
  156. #題目:尋找列表中的連續子數列

    def find_continuous_subsequences(lst):
    subsequences = []
    for i in range(len(lst)):
    for j in range(i+1, len(lst)+1):
    subsequence = lst[i:j]
    subsequences.append(subsequence)
    return subsequences

    # 使用者輸入整數列表
    nums = input("請輸入整數列表(以逗號分隔):").split(',')
    nums = [int(num) for num in nums]

    # 尋找連續子數列
    result = find_continuous_subsequences(nums)

    # 輸出結果
    print("連續子數列:")
    for subseq in result:
    print(subseq)

    回覆刪除
  157. import tensorflow as tf , datetime
    from tensorflow import keras
    from keras import datasets, layers, optimizers, Sequential, metrics, Input
    import numpy as np
    import os

    os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

    (x_train,y_train), (x_test,y_test) = datasets.mnist.load_data()

    def preprossing(x, y):
    x = tf.reshape(tf.cast(x,dtype=tf.float32)/255,[-1,28*28])
    y = tf.cast(y,dtype=tf.int32)
    return x, y

    db_train = tf.data.Dataset.from_tensor_slices((x_train,y_train))
    db_train = db_train.map(preprossing).batch(128)
    db_test = tf.data.Dataset.from_tensor_slices((x_test,y_test))
    db_test = db_test.map(preprossing).batch(128)

    model = Sequential([
    Input(shape=(784,)),
    layers.Dense(512, activation=tf.nn.relu),
    layers.Dense(256, activation=tf.nn.relu),
    layers.Dense(128, activation=tf.nn.relu),
    layers.Dense(64, activation=tf.nn.relu),
    layers.Dense(32, activation=tf.nn.relu),
    layers.Dense(10, activation=tf.nn.softmax),
    ])
    model.build([None,28*28])
    optimizer = optimizers.Adam(0.001)
    model.compile(optimizer=optimizers.Adam(learning_rate=0.0001),
    loss=tf.losses.CategoricalCrossentropy(from_logits=True),
    metrics=['accuracy'])
    log_dir = "4logs/fit/" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
    tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1)

    model.fit(x=tf.reshape(x_train,[-1,28*28]),
    y=tf.one_hot(y_train,depth=10),
    epochs=50,
    validation_data=(tf.reshape(x_test,[-1,28*28]), tf.one_hot(y_test,depth=10)),
    callbacks=[tensorboard_callback])

    用了更簡單的方式訓練模型 並生成圖表
    這是用mnist手寫數字來訓練的
    用了6層隱藏層
    這次訓練準度就可以到非常高了
    訓練50次
    在訓練資料acc:99.84%
    在測試資料acc:97.80%

    回覆刪除
  158. 作者已經移除這則留言。

    回覆刪除
  159. #題目:https://zerojudge.tw/ShowProblem?problemid=c382

    #加減乘除

    a,m,b=input('請輸入想要計算的式子(用空白隔開)\n').split()
    a=int(a)
    b=int(b)
    if m=='+':
    print(a+b)
    elif m=='-':
    print(a-b)
    elif m=='*':
    print(a*b)
    elif m=='/':
    print(a/b)
    else:
    print('不支援的運算')

    回覆刪除
  160. #題目:https://zerojudge.tw/ShowProblem?problemid=c381

    n,m=map(int,input('請輸入要輸入的字串數量跟提供的數字數量\n(用空白隔開兩者):\n').split())
    if m>n:
    print('提供的數字數量大於字串數量')
    exit()
    sl=['']*n
    for t in range(n):
    s=input('請輸入字串:')
    sl[t]=s#把使用者輸入之字串放到列表中儲存
    num=list(map(int,input('請輸入提供的數字:').split()))
    string=''.join(sl)#把使用者輸入字串相連
    result=[]#建立存放結果的列表
    for n in num:#從提供的數字列表中一個個取出在列表中做搜尋
    if n-1>len(string):
    print('數字大於字串長度')
    exit()
    else:
    result+=list(string[n-1])#先把結果取出加到列表中
    else:
    print(''.join(result))#把列表中字串連結起來

    解釋n-1的緣故:
    因為python第一位是從0開始編,而我們習慣從1開始編,若要找第n項,則是python中的第n-1項,假設使用者要找第33項(為在python中的第32項)

    回覆刪除
  161. //猜數字(do-while述句)
    #include
    int main(){
    int answer = 4;
    int guess;
    do {
    printf("Please enter your guesss: ");
    scanf("%d", &guess);
    if (answer > guess){
    printf("Too small\n");
    } else if(answer < guess){
    printf("Too large!\n");
    } else {
    printf("correct!\n");
    }
    } while(guess != answer);
    return 0;
    }

    回覆刪除
  162. //消費金額計算
    #include
    int main(){
    int total = 0;
    int id;
    do {
    scanf("%d", &id);
    switch (id) {
    case 1:total += 90; break;
    case 2:total += 75; break;
    case 3:total += 83; break;
    case 4:total += 89; break;
    case 5:total += 71; break;
    }
    } while (id != 0);//輸入零結算金額
    printf("Total: %d\n", total);
    return 0;
    }

    回覆刪除
  163. for num in range(1, 11):
    if num == 7:
    break
    if num % 2 != 0:
    print(num)

    print("迴圈結束")

    回覆刪除
  164. for letter in 'Python': # 第一個實例
    if letter == 'h':
    break
    print '當前字母 :', letter

    var = 10 # 第二個實例
    while var > 0:
    print '當前變量值 :', var
    var = var -1
    if var == 5: # 當變量 var 等於 5 時退出循環
    break

    print "Good bye!"

    回覆刪除
  165. #题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?

    #使用倒推的方法:

    x=1
    x*=5
    x+=1
    #y=0
    for i in range(4):
    x=x*5+1
    print(x)

    回覆刪除