# Python: Find the number which when appended to the list makes the total 0

## Python Programming Puzzles: Exercise-61 with Solution

Write a Python program to find the number which when appended to the list makes the total 0.

Input: [1, 2, 3, 4, 5] Output: -15 Input: [-1, -2, -3, -4, 5] Output: 5 Input: [10, 42, 17, 9, 1315182, 184, 102, 29, 15, 39, 755] Output: -1316384

**Visual Presentation:**

**Sample Solution:**

**Python Code:**

```
# Define a function named 'test' that takes a list of numbers as input
def test(nums):
# Create a set 'dset' from the input list to remove duplicates
dset = set(nums)
# Initialize 'result' with the sum of the original list 'nums'
result = sum(nums)
# Calculate the absolute difference between the minimum value in 'nums' and the sum of the symmetric difference between 'dset' and 'nums'
dmin = abs(min(nums) - sum(dset ^ set(nums)))
# Iterate over the symmetric difference between 'dset' and 'nums'
for d in dset ^ set(nums):
# Create a copy of 'nums' and append the current value 'd'
dcopy = list(nums)
dcopy.append(d)
# Calculate the sum of the modified list
ds = sum(dcopy)
# Check if the absolute value of the negation of the sum is less than 'dmin'
if 0 - ds < dmin:
result = ds
dmin = abs(ds)
# Check if the absolute value of the negation of the sum is equal to 'dmin'
elif 0 - ds == dmin:
# Update 'result' with the minimum value between the current 'result' and the calculated sum 'ds'
result = min(result, ds)
# Multiply the final result by -1 and return it
return result * (-1)
# Set a list of numbers
nums = [1, 2, 3, 4, 5]
# Print a message indicating the original list of numbers
print("Original list of numbers:")
# Print the original list of numbers
print(nums)
# Print a message indicating the number that, when appended to the list, makes the total 0
print("Number which when appended to the list makes the total 0:")
# Print the result of the 'test' function applied to the numbers
print(test(nums))
# Set another list of numbers
nums = [-1, -2, -3, -4, 5]
# Print a message indicating the original list of numbers
print("\nOriginal list of numbers:")
# Print the original list of numbers
print(nums)
# Print a message indicating the number that, when appended to the list, makes the total 0
print("Number which when appended to the list makes the total 0:")
# Print the result of the 'test' function applied to the numbers
print(test(nums))
# Set yet another list of numbers
nums = [10, 42, 17, 9, 1315182, 184, 102, 29, 15, 39, 755]
# Print a message indicating the original list of numbers
print("\nOriginal list of numbers:")
# Print the original list of numbers
print(nums)
# Print a message indicating the number that, when appended to the list, makes the total 0
print("Number which when appended to the list makes the total 0:")
# Print the result of the 'test' function applied to the numbers
print(test(nums))
```

Sample Output:

Original list of numbers: [1, 2, 3, 4, 5] Number which when appended to the list makes the total 0: -15 Original list of numbers: [-1, -2, -3, -4, 5] Number which when appended to the list makes the total 0: 5 Original list of numbers: [10, 42, 17, 9, 1315182, 184, 102, 29, 15, 39, 755] Number which when appended to the list makes the total 0: -1316384

**Flowchart:**

**Python Code Editor :**

**Have another way to solve this solution? Contribute your code (and comments) through Disqus.**

**Previous:** Find numbers that are adjacent to a prime number in the list, sorted without duplicates.

**Next:** Find the dictionary key whose case is different than all other keys.

**What is the difficulty level of this exercise?**

Test your Programming skills with w3resource's quiz.

**It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.**

https://www.w3resource.com/python-exercises/puzzles/python-programming-puzzles-61.php

**Weekly Trends and Language Statistics**- Weekly Trends and Language Statistics