Reverse Root

Problem

  The problem is so easy, that the authors were lazy to write a statement for it!

 

Input

  The input stream contains a set of integer numbers Ai (0 ≤ Ai ≤ 10 18). The numbers are separated by any number of spaces and line breaks. A size of the input stream does not exceed 256 KB.
 

Output

  For each number Ai from the last one till the first one you should output its square root. Each square root should be printed in a separate line with at least four digits after decimal point.
 

Example

inputoutput
 1427  0   

   876652098643267843 
5276538
  
   
2297.0716
936297014.1164
0.0000
37.7757

 

 
  
题目大意
  给出一坨数,逆序输出它们的平方根。
 
题目解读
  数字个数未知,需要读到文件结束。
  两个数字之间可能存在若干个空字符。
  需要保留至少四位小数。
 
算法
  无限循环读入直到文件结束,每次读入一行,按空格分离出数字,计算其平方根存入数组,将数组内容反序输出,算法时间复杂度 O(N)。
 
代码
 1 import math
 2 
 3 ans = []
 4 while 1:
 5     try:
 6         s = input().split()
 7     except EOFError:
 8         break
 9     for i in range(len(s)):
10         ans.append(math.sqrt(int(s[i])))
11 for i in range(len(ans), 0, -1):
12     print("%.4f" %ans[i - 1])

 

代码解读

  注意:以下内容完全根据笔者自己对 Python 3 的理解胡说八道。

  import:作用类似于 C/C++ 中的 include。

  EOFError:文件结束。

  range():范围函数(?)。

  len():返回数组长度。

  append():在数组末尾插入内容。

  sqrt():开方函数,在 math 库中,返回一个数的平方根。

  print():输出函数,支持格式化输出。

posted @ 2018-03-11 21:50  Efve  阅读(247)  评论(0编辑  收藏  举报