The most generic formula is like:
total_virtual_address_bits <= bits_for_offset_in_page + levels * bits_per_page_table_index
This formula is derived from splitting a virtual address up into several fields.
You can plug your values in and see that it works:
35 <= 11 + 4 * 7
35 <= 39
You can also rearrange the formula:
total_virtual_address_bits <= bits_for_offset_in_page + levels * bits_per_page_table_index
total_virtual_address_bits - bits_for_offset_in_page <= levels * bits_per_page_table_index
levels >= (total_virtual_address_bits - bits_for_offset_in_page) / bits_per_page_table_index
You can plug your values into this formula, like:
levels >= (35 - 11) / 7
levels >= 3.4285714
And here is the confusion part. The maths doesn't quite work perfectly (3.4285714 isn't a nice integer) so it gets rounded up.
This means that the highest level table will only be partially used (more specifically, we only need 3 bits for the index into the highest level page table, so only 8 entries in that table will be used and the other 120 entries will be wasted).
Note that this "rounding up" does happen in practice. One example was 32-bit 80x86 with PAE, where the highest level page table was only 32 bytes (and the size of page tables and page size where all 4 KiB).