So you have a /16 network and you need to divide it into 1024 subnets.
1024 = 2^10. That means on top of the /16, you use 10 bits to identify the subnet.
The consequence is that those subnets are /(16+10) = /26 networks
This leave you with 32-26 = 6 bits for the hosts.
So you have 2^6 = 64 addresses per subnet, including the network and broadcast addresses.
So the last byte of your network address, expressed in decimal, will always be a multiple of 64 (including multiplying by zero) so for examples :
And the broadcast address will always have the last byte equal to 63, 127,191,255
If we speak about usable host address, the first are always 1 / 65 / 129 / 193 (network address +1) and the last one 62, 126, 190, 254 (broadcast address -1).
The first subnet is quite straightforward: 18.104.22.168/26 with
- network address 22.214.171.124
- first usable host address 126.96.36.199
- last usable host address 188.8.131.52
- broadcast address 184.108.40.206
The last subnet is the one that end (broadcast address) with 255.255, so it is 220.127.116.11. Since we know its size (64) we can deduce the network address. This give
- network address 18.104.22.168
- first usable host address 22.214.171.124
- last usable host address 126.96.36.199
- broadcast address 188.8.131.52
For detailed calculation in binary you can refer to this answer