I am assuming that the statements are numbered 1, ..., 100
(as opposed to 0, ..., 99).
Let T be the number of true statements and F be the number of false statements.
T + F = 100 (1)
Problem (a)
We can rephrase each statement n as "F = n"
At most one of the statements can be true because each pair is contradictory.
Therefore there are only two possibilities:
Case 0: No statement is true.
T = 0 (2)
F = 100 (3)
Case 1: Exactly 1 statement is true.
T = 1 (4)
F = 99 (5)
We show that Case 0 is impossible because (3) is what statement 100 asserts,
making it true.
That is contradicted by (2)
The only remaining possibility is Case 1.
(5) implies that statement 99 would be the only true statement.
And that is indeed consistent with (4)
Problem (b)
We can rephrase statement n as "F >= n"
First we show that there must be at least one true and at least one false statement.
If T = 0, then F = 100 would make every statement true, contradicting T = 0.
If T = 100, then F = 0 would make every statement false, contradicting T = 100.
Therefore there must be largest true statement k.
Statement k being true:
F >= k (6)
Statement k+1 being false
F <= k (7)
Combining (6) and (7) we get
F = k (8)
All the statement less than k must be true because their claims are
weaker than the claim of statement k.
Combined with the maximality of k -- there is no true statement after than k -- we get
T = k (9)
Combining (1), (8), (9) we get
k = 50.
All the statements 1, ..., 50 are true and all the statements 51, ..., 100 are false.