Printing the sums of numbers from 1 to 10 with only 1 loop The code below prints sum from 1 to 10:


  \$1\$
  \$1+2 =\$
  \$1+2+3 =\$
  \$1+2+3+4 =\$
  \$......\$
  \$1 + ... 10 = 55\$


public class Solution{

    public static void print_sums(){

        int sum = 0 ;
         for(int i = 1 ; i &lt;= 10 ; i++){
             for(int j = 1 ; j &lt;= i; j++ ){
                sum = sum + j ;
             }
             System.out.println( sum) ;
             sum = 0 ;
         }

    }

    public static void main(String[] args)
    {
        print_sums() ;


    }
}


I wonder out of "efficiency curiosity" - is it possible to do it in 1 loop?  Without 2 nested loops?

i.e. put both i and j in one loop and increment them from there.

I think it is impossible, because **the whole loop will run only 10 times - i = [1,10]

 for(int i = 1 , j = 1 ; j &lt;= i &amp;&amp; i &lt;= 10 ; i++, j++)
             //for(int j = 1 ; j &lt;= i; j++ ){
                sum = sum + j ;
             //}
             System.out.println( sum) ;
             sum = 0 ;
Yes, it is possible.

public static void printSums() {
    int sum = 0;
    for (int i = 1; i &lt;= 10; i++) {
        sum += i;
        System.out.println(sum);
    }
}


The key is simply to calculate the sum of the first \$N\$ digits. It is easy if you already have the sum of the first \$N-1\$ digits : you simply add \$N\$.