Skip to content
Related Articles

Related Articles

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

Improve Article
Save Article
  • Difficulty Level : Medium
  • Last Updated : 01 Jul, 2022
Improve Article
Save Article

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 <iostream>
using namespace std;
int main()
{
    int i, n = 20;
    for (i = 0; i < n; n--)
        cout << "*";
    getchar();
    return 0;
}

C




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

Java




// Java code
class 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 approach
if __name__ == '__main__':
  n = 20
  for i in range(0, n):
    print("*",end='')
    n -= 1
 
# This code is contributed by gauravrajput1

C#




// C# code
using 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




<script>
 
// Javascript code
var i, n = 20;
for(i = 0; i < n; n--)
    document.write("*");
     
// This code is contributed by Ankita Saini
 
</script>

Output

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

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

C++




#include<bits/stdc++.h>
using 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 <stdio.h>
int main()
{
    int i, n = 20;
    for (i = 0; -i < n; i--)
        printf("*");          
    getchar();   
    return 0;
}

Java




// Java code
import 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 approach
if __name__ == '__main__':
  n = 20
  for i in range(0,n):
    print("*", end="")
 
# This code is contributed by shivanisinghss2110

C#




// C# code
using 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




<script>
 
let i, n = 20;
for (i = 0; -i < n; i--)
      document.write("*");
 
// This code is contributed by patel2127
</script>

Output

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

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

C++




#include <iostream>
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 <stdio.h>
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

Javascript




<script>
 
let i, n = 20;
 
for(i = 0; i + n; i--)
        document.write("*");
 
// This code is contributed by unknown2108
</script>

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 <iostream>
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 <stdio.h>
int main()
{
    int i, n = 20;
    for (i = 0; ~i < n; i--)
        printf("*");
    getchar();
    return 0;
}

Java




// Java program for the above approach
import 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 approach
n = 20
i = 0
while(~i<n):
     print("*",end="")
     i -= 1
 
# This code is contributed by Shinjanpatra

C#




// C# program for the above approach
using 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




<script>
 
// JavaScript program for the above approach
{
    var i, n = 20;
    for(i = 0; ~i < n; i--)
        document.write("*");
}
 
// This code is contributed by shivanisinghss2110
 
</script>

Output

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

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


My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!