From fed17cb0a5c8ab9367b0a8340b5943f48980e585 Mon Sep 17 00:00:00 2001 From: h7x4 Date: Mon, 14 Sep 2020 14:34:03 +0200 Subject: [PATCH] Add tasks --- Exercise 3/11 - Doble lokker/11a.py | 26 ++++++++++++++++++++++++++ Exercise 3/8.py | 18 ++++++++++++++++++ Exercise 3/9 - Alternerende sum/9a.py | 9 +++++++++ Exercise 3/9 - Alternerende sum/9b.py | 24 ++++++++++++++++++++++++ 4 files changed, 77 insertions(+) create mode 100644 Exercise 3/11 - Doble lokker/11a.py create mode 100644 Exercise 3/8.py create mode 100644 Exercise 3/9 - Alternerende sum/9a.py create mode 100644 Exercise 3/9 - Alternerende sum/9b.py diff --git a/Exercise 3/11 - Doble lokker/11a.py b/Exercise 3/11 - Doble lokker/11a.py new file mode 100644 index 0000000..6b28395 --- /dev/null +++ b/Exercise 3/11 - Doble lokker/11a.py @@ -0,0 +1,26 @@ + +def numberPyramid(length): + for i in range(length): + row = '' + for k in range(i+1): + row += f'{k+1} ' + print(row) + +def numberPyramidGenerator(): + currentList = ['1'] + while True: + yield ' '.join(currentList) + currentList.append(str(int(currentList[-1]) + 1)) + + +def solutionWithForLoops(n): + return numberPyramid(n) + +def solutionWithGenerator(n): + myGenerator = numberPyramidGenerator() + for i in range(n): + print(next(myGenerator)) + +if __name__ == "__main__": + n = int(input('n: ')) + print(solutionWithForLoops(n)) \ No newline at end of file diff --git a/Exercise 3/8.py b/Exercise 3/8.py new file mode 100644 index 0000000..83eb2e1 --- /dev/null +++ b/Exercise 3/8.py @@ -0,0 +1,18 @@ +def fibonacciIterative(n): + k1 = 0 + k2 = 1 + for i in range(n-1): + previousK2 = k2 + k2 = k1 + k2 + k1 = previousK2 + return k1 + +fibonacciSum = lambda n: sum([fibonacciIterative(i) for i in range(1, n+1)]) +fibonacciList = lambda n: [fibonacciIterative(i) for i in range(1, n+1)] + +if __name__ == "__main__": + n = int(input('n: ')) + + print(f'a) Fibonacci({n})', fibonacciIterative(n)) + print(f'b) Sum av Fibonacci(1..{n})', fibonacciSum(n)) + print(f'c) Sum av Fibonacci(1..{n})', fibonacciList(n)) \ No newline at end of file diff --git a/Exercise 3/9 - Alternerende sum/9a.py b/Exercise 3/9 - Alternerende sum/9a.py new file mode 100644 index 0000000..fe281ce --- /dev/null +++ b/Exercise 3/9 - Alternerende sum/9a.py @@ -0,0 +1,9 @@ + +def alternateSum(n): + positiveNumbers = [num**2 for num in [i for i in range(1,n+1) if i % 2 != 0]] + negativeNumbers = [-num**2 for num in [i for i in range(1,n+1) if i % 2 == 0]] + return sum(positiveNumbers + negativeNumbers) + +if __name__ == "__main__": + n = int(input('n: ')) + print(alternateSum(n)) \ No newline at end of file diff --git a/Exercise 3/9 - Alternerende sum/9b.py b/Exercise 3/9 - Alternerende sum/9b.py new file mode 100644 index 0000000..44e45fd --- /dev/null +++ b/Exercise 3/9 - Alternerende sum/9b.py @@ -0,0 +1,24 @@ +def AlternateNumberGenerator(): + isEven = lambda n: n % 2 == 0 + n = 1 + counter = 2 + while True: + yield n + n = n + (-counter**2 if isEven(counter) else counter**2) + counter+=1 + +def alternateSumStopAt(k): + numGen = AlternateNumberGenerator() + previousN = None + n = next(numGen) + iterations = 0 + while n