2016年9月8日 星期四

python 程式設計50題測試範例-25

25、將真分數分解為分子為1之分數和。(大學甲組)
        17   1   1    1      1
    例:─ =─ + ─ + ─ +  ──
        21   2   4    17    1428
  測試資料:
        57          12345           37
    (A) ─      (B) ───      (C) ─
        58          12346           67

        35          123
    (D)──         ──

        48          456


程式:
#coding=utf8

print("25、將真分數分解為分子為1之分數和。")
print("=====================================")

   
while True:
     a=int(input("請輸入分子 a  < 10000:"))
     try:
        a = int(a)
       
     except ValueError:
       print ('這是不合法的輸入.  請再輸入一次...')
       continue
        
     if ( a >= 0  and a < 10000):
       break
#==================
while True:
     b=int(input("請輸入分母 b < 10000 :"))
     try:
        b = int(b)
       
     except ValueError:
       print ('這是不合法的輸入.  請再輸入一次...')
       continue
        
     if ( b >= 0 and b < 10000):
       break
#==================
n=0
while (n==0):
   if (b%a != 0):   #  /*若分子不能整除分母*/   != 或 <> 不等於
      c=int(b/a)+1  # /*则分解出一个分母为b/a+1的埃及分数*/  
   else:
      c=int(b/a)    #/*否则,输出化简后的真分数(埃及分数)*/
      a=1

   if (a==1) :
      print("1 /", c ,end="")
      n=1               # break 
   else:
      print("1 /",c,"+",end="")    #  end="" 不換行


   a=a*c-b              #/*求出余数的分子*/
   b=b*c                #/*求出余数的分母*/ 

   if (a==3):           #/*若余数为3,输出最后两个埃及分数*/  
      print("a=3,b=",b,end="")
      print("1 /",int(b/2),"+ 1 /",b,end="")
      n=1               # break 


print()   # new line 換行
# end
      
  
       

結果: 
================= RESTART: D:/程式語言 Python 入門/50題/Ex50-25.py =================
25、將真分數分解為分子為1之分數和。
=====================================
請輸入分子 a  < 10000:17
請輸入分母 b < 10000 :21
1 / 2 +1 / 4 +1 / 17 +1 / 1428
>>> 
================= RESTART: D:/程式語言 Python 入門/50題/Ex50-25.py =================
25、將真分數分解為分子為1之分數和。
=====================================
請輸入分子 a  < 10000:57
請輸入分母 b < 10000 :58
1 / 2 +1 / 3 +1 / 7 +1 / 153 +1 / 31059
>>> 

沒有留言:

張貼留言

2024_09 作業3 以Node-Red 為主

 2024_09 作業3  (以Node-Red 為主  Arduino 可能需要配合修改 ) Arduino 可能需要修改的部分 1)mqtt broker  2) 主題Topic (發行 接收) 3) WIFI ssid , password const char br...