views:

73

answers:

3

Bellow is some Java code for the question:

int total1 = 0;
int total2 = 0;
for (int x = 0; x <= n; x++)
    total1 = total1 + x;
for (int y = 1; y < n; y++)
    total2 += total1 * y;

Based on the question above, I do an answer likes bellow. Please help me check my answer right or wrong. Thanks for your helping.

Operation        Number of operations
-------------------------------------
Assignment       n² + 1
Addition         n²
Multiplication   n²
Total Operation  3n² + 1
+4  A: 

Let's start with this: Why do you think there are n^2 + 1 times assignments?

Oren A
A: 

No, it's not correct.

The second loop goes from 1 to n-1, so that is n-1 iterations.

What do you mean by "n²" operations? Is that n squared?

Guffa
Homework Guffa.. Let's give the guy a fishing rod. If that's how you call it..
Oren A
A: 
int total1 = 0;

1 assignment

int total2 = 0;

1 assignment

for (int x = 0; x <= n; x++)

n+2 comparisons

n+1 additions

n+2 assignments

    total1 = total1 + x;

n+1 additions

n+1 assignments

for (int y = 1; y < n; y++)

n comparisons

n-1 additions

n assignments

    total2 += total1 * y;

n-1 multiplications

n-1 assignments

Summed up:

assignments: 1+1+n+2+n+1+n+n-1 = 4n + 4

additions: n+1+n+1+n-1 = 3n+2

multiplications: n-1

comparisons: n+2 + n = 2n+2

Total: 10n + 7 operations

With n > 1, as for n = 0 some terms get wrong. Quadratic terms in general only appear with nested loops. Don't forget the for(...) parts. An increment is an add + assignment - although some architectures might do it in one step. No jumping operations counted here.

Eiko
Thank you. now i know the meaning for this question.
Tonberry