(String ip, int n)
| 1 | class Solution { |
| 2 | public List<String> ipToCIDR(String ip, int n) { |
| 3 | long start = ipToLong(ip); |
| 4 | List<String> ans = new ArrayList(); |
| 5 | while (n > 0) { |
| 6 | int mask = Math.max(33 - bitLength(Long.lowestOneBit(start)), |
| 7 | 33 - bitLength(n)); |
| 8 | ans.add(longToIP(start) + "/" + mask); |
| 9 | start += 1 << (32 - mask); |
| 10 | n -= 1 << (32 - mask); |
| 11 | } |
| 12 | return ans; |
| 13 | } |
| 14 | private long ipToLong(String ip) { |
| 15 | long ans = 0; |
| 16 | for (String x: ip.split("\\.")) { |