For Loops: Printing Numbers in C++ (Time Complexity: O(n))


We can achieve many different outcomes with for loops.

It's all about tuning the initialization, condition and iteration statements.

For example, we can print all numbers from 2 through 6:

for (int i = 2; i < 7; i++) {
	cout << i << endl;
}

The output of this code is:

2
3
4
5
6

Let's break down this code:

  • The initialization statement is int i = 2, so we start iterating from number 2.

  • The condition statement is i < 7. We could've written i <= 6 and it would still be correct.

  • The iteration statement is i++, so we increase our number by 1 every time.


Assignment

Let's print all numbers from 3 through 10 using a for loop.


Hint
Look at the examples above if you get stuck.


Understanding the Problem

The core challenge of this problem is to correctly set up a for loop that prints numbers from 3 to 10. This involves understanding how to initialize the loop, set the correct condition for termination, and ensure the iteration step is correct.

For loops are fundamental in programming and are used in various applications such as iterating over arrays, generating sequences, and more. A common pitfall is off-by-one errors, where the loop either runs one time too many or too few.

Approach

To solve this problem, we need to:

Let's start with a naive solution and then discuss why it is optimal for this problem.

Naive Solution

The naive solution involves directly implementing the for loop as described:

#include <iostream>
using namespace std;

int main() {
    for (int i = 3; i <= 10; i++) {
        cout << i << endl;
    }
    return 0;
}

This solution is optimal for this problem because it directly addresses the requirements with a time complexity of O(n), where n is the number of iterations (in this case, 8).

Algorithm

Here is a step-by-step breakdown of the algorithm:

  1. Initialize the loop variable i to 3.
  2. Check if i is less than or equal to 10. If true, proceed to the next step; otherwise, exit the loop.
  3. Print the value of i.
  4. Increment i by 1.
  5. Repeat steps 2-4 until the condition in step 2 is false.

Code Implementation

Here is the C++ code implementation with comments explaining each part:

#include <iostream>
using namespace std;

int main() {
    // Loop from 3 to 10 inclusive
    for (int i = 3; i <= 10; i++) {
        // Print the current value of i
        cout << i << endl;
    }
    return 0;
}

Complexity Analysis

The time complexity of this approach is O(n), where n is the number of iterations. In this case, n is 8 (from 3 to 10 inclusive). The space complexity is O(1) as we are using a constant amount of extra space.

Edge Cases

Potential edge cases include:

For this specific problem, there are no significant edge cases to handle since the range is well-defined and positive.

Testing

To test the solution comprehensively, consider the following test cases:

Testing can be done using simple print statements or using a testing framework like Google Test for more complex scenarios.

Thinking and Problem-Solving Tips

When approaching such problems:

Practice is key to improving problem-solving skills. Try solving similar problems and study different algorithms to broaden your understanding.

Conclusion

In this blog post, we discussed how to use a for loop to print numbers from 3 to 10 in C++. We covered the problem definition, approach, algorithm, code implementation, complexity analysis, edge cases, and testing. Understanding and solving such problems is crucial for developing strong programming skills.

Keep practicing and exploring different problems to enhance your problem-solving abilities.

Additional Resources

For further reading and practice, consider the following resources: