The second one is true because of linearity...

The first one:

j will take the value of i+1... As a result, it will start from value 1, when you meet the inner loop for first time... Then, when you go to the inner loop for the 2nd time, it will have the value 2..

Thus, the sequence of statements is going to be executed N*(N/2) = N²/2 pretty much... it should be something less than that actually, but when N goes to really big numbers, like numbers that real applications use, you do not care for 100 or 200 times a sequence of statement is going to be executed..

In order to compute it accurately, you should do this:

Σ[base:i=0, upperBound:i=N-1] Σ[base:j = i+1, upperBound:j = N-1] 1

In order to get on with more complex calculations, you need to have taken a course in Discrete Mathematics (Διακριτά Μαθηματικά).

However, when talking about complexities, in order to conclude somewhere, you need to let n go to infinity..