Find Square root of number only with addition or/and subtraction
static void FindSquareRoot(int S)



Why void? The method would be more useful if it returned the value rather than printing it, and throw an exception if the input was invalid rather than printing an error message.




    int i = 1;

    for (; i &lt;= S; i++)



The scope of i is the loop, so why not restrict it to that scope?




        int k = S;
        int j = i;

        while (j&gt;0)
        {
            k = k - i;
            j--;
        }



i and j as loop variables are fairly conventional, but what does k mean? It's not a loop variable. A comment indicating that after the inner loop k = S - i * i would help, and might suggest a name like surplus.

Again, restrict the scope of the loop variable to the loop unless there's good reason not to.



Finally, on scope, by pulling k out of the loop you should be able to figure out a way to update its value without using an inner loop...