Skip to content

Commit 30277f8

Browse files
add numbers different signs algorithm. (TheAlgorithms#8008)
1 parent af8d520 commit 30277f8

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed

DIRECTORY.md

+1
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
* [Index Of Rightmost Set Bit](bit_manipulation/index_of_rightmost_set_bit.py)
5151
* [Is Even](bit_manipulation/is_even.py)
5252
* [Is Power Of Two](bit_manipulation/is_power_of_two.py)
53+
* [Numbers Different Signs](bit_manipulation/numbers_different_signs.py)
5354
* [Reverse Bits](bit_manipulation/reverse_bits.py)
5455
* [Single Bit Manipulation Operations](bit_manipulation/single_bit_manipulation_operations.py)
5556

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
"""
2+
Author : Alexander Pantyukhin
3+
Date : November 30, 2022
4+
5+
Task:
6+
Given two int numbers. Return True these numbers have opposite signs
7+
or False otherwise.
8+
9+
Implementation notes: Use bit manipulation.
10+
Use XOR for two numbers.
11+
"""
12+
13+
14+
def different_signs(num1: int, num2: int) -> bool:
15+
"""
16+
Return True if numbers have opposite signs False otherwise.
17+
18+
>>> different_signs(1, -1)
19+
True
20+
>>> different_signs(1, 1)
21+
False
22+
>>> different_signs(1000000000000000000000000000, -1000000000000000000000000000)
23+
True
24+
>>> different_signs(-1000000000000000000000000000, 1000000000000000000000000000)
25+
True
26+
>>> different_signs(50, 278)
27+
False
28+
>>> different_signs(0, 2)
29+
False
30+
>>> different_signs(2, 0)
31+
False
32+
"""
33+
return num1 ^ num2 < 0
34+
35+
36+
if __name__ == "__main__":
37+
import doctest
38+
39+
doctest.testmod()

0 commit comments

Comments
 (0)