2017年12月19日 星期二

a005: Eva 的回家作業


a005: Eva 的回家作業

Eva的家庭作業裏有很多數列填空練習。填空練習的要求是:
已知數列的前四項,填出第五項。因 為已經知道這些數列
只可能是等差或等比數列,她決定寫一個程式來完成這些練習。
輸入說明
第一行是數列的數目t(0 <= t <= 20)。 以下每行均包含四個整數,表示數列的前四項。 約定數列的前五項均為不大於105的自然數,等比數列的比值也是自然數。
輸出說明
對輸入的每個數列,輸出它的前五項。

範例輸入
2
1 2 3 4
1 2 4 8
範例輸出
1 2 3 4 5
1 2 4 8 16



"""Eva的家庭作業裏有很多數列填空練習。填空練習的要求是:
已知數列的前四項,填出第五項。因 為已經知道這些數列
只可能是等差或等比數列,她決定寫一個程式來完成這些練習。"""


print("第一行是數列的數目t(0 <= t <= 20)。 ")
print("以下每行均包含四個整數,表示數列的前四項。")

intT=int(input("數列的數目t : "))
test_list=[ [None] * 5 for i in range(intT) ]
#print(test_list)
print()

for J in range (0,intT) :
    print("第",J,end='')
    print("數列")
   
    for I in range (0,4) :       
        print("數列的前",repr(I),end='')
        intX=int(input("項 : "))
        test_list[J][I]=intX
        #print (test_list)   

    print()

print (test_list)


for J in range (0,intT) :
    sumX=0
    for I in range (0,4) :       
        sumX=sumX+test_list[J][I]
        #print(sumX)
        if (test_list[J][0]+ test_list[J][3])*4/2 == sumX :
           test_list[J][4]=test_list[J][3]+(test_list[J][3]-test_list[J][2])

    # 等比中項
    bool_x = ((test_list[J][0]*test_list[J][2]) == test_list[J][1]**2)
    bool_y = ((test_list[J][1]*test_list[J][3]) == test_list[J][2]**2)
    #print(bool_x)
    #print(bool_y)
   
    if bool_x and bool_y :
       test_list[J][4]=int(test_list[J][3]* (test_list[J][2]/test_list[J][1]))
     
    print()

print(test_list)

   


====================== RESTART: D:/Python_APSC/a005.py ======================
第一行是數列的數目t(0 <= t <= 20)。
以下每行均包含四個整數,表示數列的前四項。
數列的數目t : 2

第 0數列
數列的前 0項 : 6
數列的前 1項 : 8
數列的前 2項 : 10
數列的前 3項 : 12

第 1數列
數列的前 0項 : 3
數列的前 1項 : 9
數列的前 2項 : 27
數列的前 3項 : 81

[[6, 8, 10, 12, None], [3, 9, 27, 81, None]]


[[6, 8, 10, 12, 14], [3, 9, 27, 81, 243]]
>>>

沒有留言:

張貼留言

WOKWI ESP32 LED Control , Node-Red MQTT SQLITE  

WOKWI ESP32 LED Control ,  Node-Red  MQTT SQLITE   const char broker[] = "test.mosquitto.org" ; //const char broker[] = "br...