Skip to content

Commit c1c0219

Browse files
authored
Create integer division.md
1 parent 889b515 commit c1c0219

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

Tips & Tricks/integer division.md

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
**Useful Tip: Utilizing `//` for Integer Division**:
2+
3+
In the context of the examples provided, the use of `//` serves the purpose of integer division. Here are some tips and tricks for leveraging `//` in competitive programming challenges:
4+
5+
1. **Integer Division**: The `//` operator performs division where the result is rounded down to the nearest integer, discarding any fractional part.
6+
```python
7+
result = 7 // 2 # This will give 3, not 3.5
8+
```
9+
10+
2. **Extracting Digits**: In the context of extracting digits from a number, `n //= 10` is used to remove the last digit in each iteration of a loop.
11+
```python
12+
n = 12345
13+
while n > 0:
14+
digit = n % 10 # Extract last digit
15+
n //= 10 # Remove last digit
16+
```
17+
18+
3. **Finding the Quotient**: When dealing with division where only the integer part of the result is needed, `//` is preferred over `/`.
19+
```python
20+
quotient = 17 // 3 # This will give 5
21+
```
22+
23+
4. **Dealing with Negative Numbers**: `//` follows the behavior of rounding towards negative infinity for negative operands.
24+
```python
25+
result = -7 // 2 # This will give -4, not -3.5
26+
```
27+
28+
5. **Splitting into Groups**: Use `//` to divide a sequence into equal-sized groups or partitions.
29+
```python
30+
items_per_group = 5
31+
total_items = 23
32+
num_groups = (total_items + items_per_group - 1) // items_per_group
33+
```
34+
35+
6. **Flooring Decimal Numbers**: While `math.floor()` provides similar functionality, `//` is often faster for integer division.
36+
```python
37+
import math
38+
result1 = math.floor(7.5) # This will give 7
39+
result2 = 7.5 // 1 # This will give 7
40+
```
41+
42+
7. **Avoiding Floating Point Errors**: In cases where floating-point errors may occur, `//` ensures precise integer division without rounding errors.
43+
```python
44+
result = 10**10 // 3.0 # This will give precise integer result without rounding errors
45+
```
46+
47+
By understanding and utilizing `//` effectively, you can achieve efficient and accurate integer division in various competitive programming scenarios.

0 commit comments

Comments
 (0)