2022年8月23日 星期二

Python a248: 新手訓練 ~ 陣列應用

a248: 新手訓練 ~ 陣列應用


 #a248: 新手訓練 ~ 陣列應用

'''

大家都知道,小算盤的小數運算只能算出小數點後三十幾位

但好奇的桑葉想知道更精準的小數值 

請你幫可憐的桑葉做出可以算出精準的小數運算的程式


輸入說明

每次輸入有三個正整數 a , b , N 

1<= a , b <= 2147483647      1 <= N <= 10000  

( 輸入不會超過1000筆 ) 


輸出說明

請輸出 a / b 的小數運算結果 

精準到小數點後N位

第N位以後請無條件捨去


範例輸入 #1

18467 41 10

26500 6334 10

15724 19169 10

10 5 3


範例輸出 #1

450.4146341463

4.1837701294

0.8202827481

2.000


hello = 'Hello world'

print(hello[-4:])      # 從 0 到 4 切出子字串

print(hello[:-4])       # 從 0 開始,第一個索引可以省略

orld

Hello w

>


'''   

print('a248: 新手訓練 ~ 陣列應用')

print('每次輸入有三個正整數 a , b , N ')

print('1<= a , b <= 2147483647      1 <= N <= 10000')


while True:

  try:

    a, b, c = map(int, input('每次輸入有三個正整數 a , b , N--> ').split(' '))   # 將題目給予的字串拆分成 a、b、c 三個數字

    rd = a*(10**c)//b    # 乘以 10^位數 後除以 b 求整數

    #print (rd)

    rs = str(rd)         # 將整數轉成字串

    #print (rs)

    

    if len(rs) < c:      # 如果字串的長度不足位數

      for i in range(c - len(rs)):

        rs = '0' + rs    # 將字串前方補 0

        

    m = rs[(c*-1):]      # 根據位數拆分字串 ( 小數點後段 )

    n = rs[:(c*-1)]      # 根據位數拆分字串 ( 小數點前段 )

    

    print (rs , c*-1,c)

    print (n,m)

    if n == '': n = '0'  # 如果前段為空字串,就補 0

    print(f'{n}.{m}')    # 加上小數點,印出結果

  except:

    break



Python 3.7.9 (bundled)

>>> %Run a248.py

a248: 新手訓練 ~ 陣列應用

每次輸入有三個正整數 a , b , N 

1<= a , b <= 2147483647      1 <= N <= 10000

每次輸入有三個正整數 a , b , N--> 18467 41 10

4504146341463 -10 10

450 4146341463

450.4146341463

每次輸入有三個正整數 a , b , N--> 26500 6334 10

41837701294 -10 10

4 1837701294

4.1837701294

每次輸入有三個正整數 a , b , N--> 15724 19169 10

8202827481 -10 10

 8202827481

0.8202827481

每次輸入有三個正整數 a , b , N--> 10 5 15

2000000000000000 -15 15

2 000000000000000

2.000000000000000

每次輸入有三個正整數 a , b , N--> 

>>> 


========================================

print('a248: 新手訓練 ~ 陣列應用')

print('每次輸入有三個正整數 a , b , N ')

print('1<= a , b <= 2147483647      1 <= N <= 10000')


while True:

  try:

    a, b, c = map(int, input('每次輸入有三個正整數 a , b , N--> ').split(' '))   # 將題目給予的字串拆分成 a、b、c 三個數字

    d=float(a/b)

    print (f'{d:.{c}f}')

    

 

  except:

    break


>>> %Run a248-1.py

a248: 新手訓練 ~ 陣列應用

每次輸入有三個正整數 a , b , N 

1<= a , b <= 2147483647      1 <= N <= 10000

每次輸入有三個正整數 a , b , N--> 10 5 20

2.00000000000000000000

每次輸入有三個正整數 a , b , N--> 18467 41 10

450.4146341463

每次輸入有三個正整數 a , b , N--> 26500 6334 20

4.18377012946005688576

每次輸入有三個正整數 a , b , N--> 15724 19169 10

0.8202827482

每次輸入有三個正整數 a , b , N--> 

>>> 

沒有留言:

張貼留言

Messaging API作為替代方案

  LINE超好用功能要沒了!LINE Notify明年3月底終止服務,有什麼替代方案? LINE Notify將於2025年3月31日結束服務,官方建議改用Messaging API作為替代方案。 //CHANNEL_ACCESS_TOKEN = 'Messaging ...