AcWing 727. 菱形的两种解法
原题链接
困难
作者:
陈姥姥
,
2024-02-13 21:03:39
,
所有人可见
,
阅读 33
C++ 代码
#include <iostream>
int main() {
int n;
std::cout << "请输入一个奇数n:";
std::cin >> n;
// 检查输入是否为奇数
if (n % 2 == 0) {
std::cout << "输入的不是奇数!" << std::endl;
return 0;
}
// 打印上半部分菱形(包括中间行)
for (int i = 0; i < n / 2 + 1; i++) {
// 打印空格
for (int j = 0; j < n / 2 - i; j++) {
std::cout << " ";
}
// 打印星号
for (int j = 0; j < 2 * i + 1; j++) {
std::cout << "*";
}
std::cout << std::endl;
}
// 打印下半部分菱形
for (int i = n / 2 - 1; i >= 0; i--) {
// 打印空格
for (int j = 0; j < n / 2 - i; j++) {
std::cout << " ";
}
// 打印星号
for (int j = 0; j < 2 * i + 1; j++) {
std::cout << "*";
}
std::cout << std::endl;
}
return 0;
}
C++ 代码
#include <iostream>
int main() {
int n;
std::cout << "请输入一个奇数n:";
std::cin >> n;
// 检查输入是否为奇数
if (n % 2 == 0) {
std::cout << "输入的不是奇数!" << std::endl;
return 0;
}
// 打印菱形
for (int i = 0; i < n; i++) {
int spaces = std::abs(n / 2 - i);
int stars = n - spaces * 2;
// 打印空格
for (int j = 0; j < spaces; j++) {
std::cout << " ";
}
// 打印星号
for (int j = 0; j < stars; j++) {
std::cout << "*";
}
std::cout << std::endl;
}
return 0;
}