Программы с ромбовидными узорами — это популярное упражнение в программировании, которое предполагает печать узора в форме ромба с использованием звездочек или других символов. В этой статье мы рассмотрим несколько методов создания ромбовидных узоров на C++ и предоставим примеры кода для каждого метода.
Метод 1. Использование вложенных циклов
#include <iostream>
void printDiamond(int n) {
for (int i = 0; i <= n; i++) {
for (int j = 0; j <= n - i; j++)
std::cout << " ";
for (int k = 0; k <= 2 * i; k++)
std::cout << "*";
std::cout << std::endl;
}
for (int i = n - 1; i >= 0; i--) {
for (int j = 0; j <= n - i; j++)
std::cout << " ";
for (int k = 0; k <= 2 * i; k++)
std::cout << "*";
std::cout << std::endl;
}
}
int main() {
int n;
std::cout << "Enter the number of rows: ";
std::cin >> n;
printDiamond(n);
return 0;
}
Метод 2: использование одного цикла и условий
#include <iostream>
#include <cmath>
void printDiamond(int n) {
int i, j;
for (i = 0; i <= n; i++) {
for (j = 1; j <= n - i; j++)
std::cout << " ";
for (j = 1; j <= 2 * i - 1; j++)
std::cout << "*";
std::cout << std::endl;
}
for (i = n - 1; i >= 1; i--) {
for (j = 1; j <= n - i; j++)
std::cout << " ";
for (j = 1; j <= 2 * i - 1; j++)
std::cout << "*";
std::cout << std::endl;
}
}
int main() {
int n;
std::cout << "Enter the number of rows: ";
std::cin >> n;
printDiamond(n);
return 0;
}
Метод 3. Использование рекурсии
#include <iostream>
void printSpaces(int n) {
if (n > 0) {
std::cout << " ";
printSpaces(n - 1);
}
}
void printStars(int n) {
if (n > 0) {
std::cout << "*";
printStars(n - 1);
}
}
void printDiamond(int n, int currentRow) {
if (currentRow > n) {
return;
}
printSpaces(n - currentRow);
printStars(2 * currentRow - 1);
std::cout << std::endl;
printDiamond(n, currentRow + 1);
printSpaces(n - currentRow);
printStars(2 * currentRow - 1);
std::cout << std::endl;
}
int main() {
int n;
std::cout << "Enter the number of rows: ";
std::cin >> n;
printDiamond(n, 1);
return 0;
}
В этой статье мы рассмотрели три различных метода создания ромбовидных узоров в C++. Первый метод использует вложенные циклы, второй метод использует один цикл и условия, а третий метод использует рекурсию. Каждый метод предлагает свой подход к решению проблемы. Поняв эти методы, вы сможете расширить свои навыки программирования и решать более сложные шаблонные программы.
Не забудьте поэкспериментировать с различными значениями «n», чтобы создать ромбовидные узоры разных размеров, и изучить дальнейшие модификации кода для улучшения узоров. Удачи в программировании!