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

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


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

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


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



filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


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)
filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


Please comment if you find more solutions of above problems.



My Personal Notes arrow_drop_up

Improved By : prerna saini



Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.