1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
#!/usr/local/bin/python3
import sys, argparse
import math
# Challenge 243, Task 2: Floor Sum
# You are given an array of positive integers (>=1).
# Write a script to return the sum of floor(nums[i] / nums[j]) where 0 <= i,j < nums.length. The floor() function returns the integer part of the division.
# See https://theweeklychallenge.org/blog/perl-weekly-challenge-243/#TASK2 for more information on this challenge
# else set default values from example if no cmd line input
def main(argv):
argParser = argparse.ArgumentParser()
argParser.add_argument("-n", "--nums", nargs='+', type=int, help="space seperated list of positive integers e.g. -n 10 30 4 5")
args = argParser.parse_args()
if args.nums:
nums = args.nums
print( sum_floors(nums) )
else:
#Example 1
nums = (2, 5, 9)
print( sum_floors(nums) )
#Example 2
nums = (7, 7, 7, 7, 7, 7, 7)
print( sum_floors(nums) )
def sum_floors(nums):
sum_of_floors = 0
for i, inum in enumerate(nums):
for j, jnum in enumerate(nums):
sum_of_floors = sum_of_floors + math.floor(inum / jnum)
return sum_of_floors
if __name__ == "__main__":
main(sys.argv[1:])
|