GeeksforGeeks App
Open App
Browser
Continue

# Change/add only one character and print ‘*’ exactly 20 times

In the below code, change/add only one character and print ‘*’ exactly 20 times.

int main()
{
int i, n = 20;
for (i = 0; i < n; i--)
printf("*");
getchar();
return 0;
}

Solutions:
1. Replace i by n in for loop’s third expression

## C++

 #include using namespace std;int main(){    int i, n = 20;    for (i = 0; i < n; n--)        cout << "*";    getchar();    return 0;}

## C

 #include int main(){    int i, n = 20;    for (i = 0; i < n; n--)        printf("*");    getchar();       return 0;}

## Java

 // Java codeclass GfG {public static void main(String[] args){    int i, n = 20;    for (i = 0; i < n; n--)        System.out.print("*");}}

## Python3

 # Python3 program to implement # the above approachif __name__ == '__main__':  n = 20  for i in range(0, n):    print("*",end='')    n -= 1 # This code is contributed by gauravrajput1

## C#

 // C# codeusing System;class GfG{    public static void Main()    {        int i, n = 20;        for (i = 0; i < n; n--)            Console.Write("*");    }} // This code is contributed by SoumikMondal

## Javascript



Output

********************

2. Put ‘-‘ before i in for loop’s second expression

## C++

 #includeusing namespace std; int main(){    int i, n = 20;    for (i = 0; -i < n; i--)        cout<<"*";                    return 0;} // This code is contributed by rutvik_56.

## C

 #include int main(){    int i, n = 20;    for (i = 0; -i < n; i--)        printf("*");              getchar();       return 0;}

## Java

 // Java codeimport java.util.*;public class GFG{  public static void main(String[] args)  {    int i, n = 20;    for (i = 0; -i < n; i--)      System.out.print("*");  }} // This code is contributed by divyesh072019.

## Python3

 # Python3 program to implement # the above approachif __name__ == '__main__':  n = 20  for i in range(0,n):    print("*", end="") # This code is contributed by shivanisinghss2110

## C#

 // C# codeusing System;class GfG{    public static void Main()    {        int i, n = 20;        for (i = 0; -i < n; i--)            Console.Write("*");    }} // This code is contributed by divyeshrabadiya07.

## Javascript



Output

********************

3. Replace < by + in for loop’s second expression

## C++

 #include using namespace std; int main(){    int i, n = 20;    for(i = 0; i + n; i--)        cout << "*";       return 0;} // This code is contributed by shivani

## C

 #include int main(){    int i, n = 20;    for (i = 0; i + n; i--)       printf("*");    getchar();    return 0;}

## Java

 /*package whatever //do not write package name here */import java.io.*; class GFG {    public static void main (String[] args) {        int i, n = 20;        for(i = 0; i + n > 0; i--)             System.out.print("*");        }} // This code is contributed by shinjanpatra.

## Python3

 i,n = 0,20 while(i+n):   print("*",end="")   i -= 1 # This code is contributed by shinjanpatra

## C#

 using System; class GFG{  static void Main(string[] args)  {    int i, n = 20;    for (i = 0; i + n > 0; i--)      Console.Write("*");  }} // This code is contributed by lokeshpotta20.

## Javascript



Output

********************

Let’s extend the problem little.
Change/add only one character and print ‘*’ exactly 21 times.
Solution: Put negation operator before i in for loop’s second expression.
Explanation: Negation operator converts the number into its one’s complement.

No.              One's complement
0 (00000..00)            -1 (1111..11)
-1 (11..1111)             0 (00..0000)
-2 (11..1110)             1 (00..0001)
-3 (11..1101)             2 (00..0010)
...............................................
-20 (11..01100)           19 (00..10011)

## C++

 // C++ program for the above approach#include using namespace std; int main(){    int i, n = 20;    for (i = 0; ~i < n; i--)        printf("*");    getchar();    return 0;} // This code is contributed by shivanisinghss2110

## C

 #include int main(){    int i, n = 20;    for (i = 0; ~i < n; i--)        printf("*");    getchar();    return 0;}

## Java

 // Java program for the above approachimport java.util.*; class GFG{ public static void main(String[] args){    int i, n = 20;    for(i = 0; ~i < n; i--)        System.out.print( "*" );}} // This code is contributed by shivani

## Python3

 # JavaScript program for the above approachn = 20i = 0while(~i

## C#

 // C# program for the above approachusing System; class GFG{ public static void Main(String[] args){    int i, n = 20;    for(i = 0; ~i < n; i--)        Console.Write( "*" );}} // This code is contributed by shivanisinghss2110

## Javascript



Output

*********************

Time Complexity: O(1)

Since only a single loop is used to print the n stars, the time complexity of this approach is O(1).

Space Complexity: O(1)

No extra space is used in this approach and hence the space complexity is O(1).

Please comment if you find more solutions to the above problems.

My Personal Notes arrow_drop_up