Измените / добавьте только один символ и выведите '*' ровно 20 раз

Опубликовано: 1 Января, 2022

В приведенном ниже коде измените / добавьте только один символ и выведите «*» ровно 20 раз.

 int main ()
{
    int i, n = 20;
    для (i = 0; i <n; i--)
        printf ("*");             
    getchar ();
    возврат 0;
}

Решения:
1. Замените i на n в третьем выражении цикла.

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

2. Поместите '-' перед i во втором выражении цикла for.

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;
}
// This code is contributed by rutvik_56.

Джава

// 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.

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.

3. Замените <на + во втором выражении цикла.

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

Немного расширим задачу.
Измените / добавьте только один символ и выведите «*» ровно 21 раз.
Решение. Поместите оператор отрицания перед i во втором выражении цикла for.
Объяснение: Оператор отрицания преобразует число в его дополнение.

 Нет. Одно дополнение
 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;
}

Прокомментируйте, если найдете другие решения вышеуказанных проблем.

Хотите узнать о лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для базового уровня плюс STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .



C++ C