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 <stdio.h>
int main()
{
int i, n = 20;
for (i = 0; i < n; n--)
printf ( "*" );
getchar ();
return 0;
}
|
C++
#include <iostream>
using namespace std;
int main()
{
int i, n = 20;
for (i = 0; i < n; n--)
cout << "*" ;
getchar ();
return 0;
}
|
Java
class GfG {
public static void main(String[] args)
{
int i, n = 20 ;
for (i = 0 ; i < n; n--)
System.out.print( "*" );
}
}
|
Python3
if __name__ = = '__main__' :
n = 20 ;
for i in range ( 0 , n):
print ( "*" ); n - = 1 ;
|
C#
using System;
class GfG
{
public static void Main()
{
int i, n = 20;
for (i = 0; i < n; n--)
Console.Write( "*" );
}
}
|
2. Put ‘-‘ before i in for loop’s second expression
C
#include <stdio.h>
int main()
{
int i, n = 20;
for (i = 0; -i < n; i--)
printf ( "*" );
getchar ();
return 0;
}
|
C++
#include<bits/stdc++.h>
using namespace std;
int main()
{
int i, n = 20;
for (i = 0; -i < n; i--)
cout<< "*" ;
return 0;
}
|
Java
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( "*" );
}
}
|
C#
using System;
class GfG
{
public static void Main()
{
int i, n = 20;
for (i = 0; -i < n; i--)
Console.Write( "*" );
}
}
|
3. Replace < by + in for loop’s second expression
c
#include <stdio.h>
int main()
{
int i, n = 20;
for (i = 0; i + n; i--)
printf ( "*" );
getchar ();
return 0;
}
|
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
#include <stdio.h>
int main()
{
int i, n = 20;
for (i = 0; ~i < n; i--)
printf ( "*" );
getchar ();
return 0;
}
|
Please comment if you find more solutions to the above problems.
Attention reader! Don’t stop learning now. Get hold of all the important C++ Foundation and STL concepts with the C++ Foundation and STL courses at a student-friendly price and become industry ready.