В приведенном ниже коде измените / добавьте только один символ и выведите «*» ровно 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;
} |
Джава
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. Поместите '-' перед 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;
} |
Джава
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. Замените <на + во втором выражении цикла.
C ++
#include <iostream> using namespace std; int main() { int i, n = 20;
for (i = 0; i + n; i--)
cout << "*" ;
return 0;
} |
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 и многому другому, см. Полный курс подготовки к собеседованию .