int limit = 1 << n;
for (int i = 0; i < limit; i++) {
if (Integer.bitCount(i) >= 3) {
System.out.println(i);
}
}
# | User | Rating |
---|---|---|
1 | tourist | 3985 |
2 | jiangly | 3741 |
3 | jqdai0815 | 3682 |
4 | Benq | 3529 |
5 | orzdevinwang | 3526 |
6 | ksun48 | 3489 |
7 | Radewoosh | 3483 |
8 | Kevin114514 | 3442 |
9 | ecnerwala | 3392 |
9 | Um_nik | 3392 |
# | User | Contrib. |
---|---|---|
1 | cry | 169 |
2 | maomao90 | 162 |
2 | Um_nik | 162 |
2 | atcoder_official | 162 |
5 | djm03178 | 158 |
6 | -is-this-fft- | 157 |
7 | adamant | 155 |
8 | awoo | 154 |
8 | Dominater069 | 154 |
10 | nor | 150 |
int limit = 1 << n;
for (int i = 0; i < limit; i++) {
if (Integer.bitCount(i) >= 3) {
System.out.println(i);
}
}
Name |
---|
There's technically no asymptotically better way. Note that the number of integers in that range that have bitCount < 3 is So the total number of integers you would be printing out is O(2n) - O(n2) = O(2n), which is at least necessary asymptotically.