Fix: Add support for negative numbers in sum_of_digits#3208
Open
javedarham2-coder wants to merge 1 commit into
Open
Fix: Add support for negative numbers in sum_of_digits#3208javedarham2-coder wants to merge 1 commit into
javedarham2-coder wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description:
Currently, passing a negative number to the
sum_of_digits()function causes it to enter an infinite loop or produce incorrect results. This PR resolves the bug by ensuring negative signs are safely handled before the sum is calculated.Solution Implemented:
Instead of mathematically converting the number with
abs(), I opted for a Pythonic string-handling approach:sum(int(digit) for digit in str(n).replace('-', ''))This cleanly strips the negative sign (if present) and iterates through the remaining digits, completely avoiding edge cases with mathematical signs.
Changes Made:
sum_of_digitscore logic in both duplicate scripts to handle negative integers.isnumeric()check in the input function to correctly accept negative inputs using.lstrip('-').Related Issue:
Closes #3060
Checklist