2022年8月18日 星期四

Python a042: 平面圓形切割

a042: 平面圓形切割

 #a042: 平面圓形切割

'''

對任意正整數n,平面上的n 個圓最多可將平面切成幾個區域?


1個圓可以把平面分割成2個部份(圓的內部和外部),2個圓最多可以把平面分割成4個部份,3個圓最多可以把平面分割成8個部份。請問10個圓最多可以把平面分割成多少個部份?(1)1024 (2)512 (3)110 (4)92

公式:

一個圓可以把平面分成兩部分,兩個圓有兩個交點,每多一個交點會多出一個部分。所以此後增加的平面部分數依次是2,4,6,8,……2*(n-1)。

N個圓最多可以把平面分成2+[2+4+6+……+(2n-2)]=n^2-n+2個部分.

n=10

n^2-n+2=10^2-10 +2=92個


輸入說明

輸入若干行直到 EOF 為止。每一行包含一個整數 n

輸出說明

針對每一個 n 輸出切割出的區域數。

範例輸入 #1

3

4

範例輸出 #1

8

14


'''

print('平面上的n 個圓最多可將平面切成幾個區域?')


flag=1

while (flag==1):

    try:

        a=(input('請輸入任意數字 (0 結束)--->'))

        if (a=='0'):

            flag=0

            print('結束程式')

            break    

        else:

            n=int(a)

            n=n*n-n+2

            print("面上的  {}個圓最多可將平面切成 {} 區域".format(a, n),end='\n')

    except:

        break            



Python 3.7.9 (bundled)

>>> %Run a042.py

平面上的n 個圓最多可將平面切成幾個區域?

請輸入任意數字 (0 結束)--->3

面上的  3個圓最多可將平面切成 8 區域

請輸入任意數字 (0 結束)--->4

面上的  4個圓最多可將平面切成 14 區域

請輸入任意數字 (0 結束)--->10

面上的  10個圓最多可將平面切成 92 區域

請輸入任意數字 (0 結束)--->0

結束程式

>>> 

沒有留言:

張貼留言

2024_09 作業3 以Node-Red 為主

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