Skip to content
Related Articles

Related Articles

Improve Article

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

  • Difficulty Level : Medium
  • Last Updated : 03 Aug, 2021

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 programe to implement 
# the above approach
if __name__ == '__main__':
  n = 20;
  for i in range(0, n):
    print("*"); 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>

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 programe 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>

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;
}

Javascript




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

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

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>

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

Want to learn from the best curated videos and practice problems, check out the C++ Foundation Course for Basic to Advanced C++ and C++ STL Course for foundation plus STL.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.



My Personal Notes arrow_drop_up
Recommended Articles
Page :