c++ - 在 C++ 中打印星形图案
问题描述
我很难找出如何从一个要求打印整数的问题开始,假设 3,
*
**
*
***
*
**
*
到目前为止我只有
void print(int n)
{
if (n < 1) {
return;
}
if (n == 1) {
cout << "*" << endl;
return;
}
print_star(n - 1);
for (int i = 0; i < n; i++) {
cout << "*";
}
cout << endl;
}
我看到的输出是
*
**
***
我想不出打印该模式的代码。
解决方案
您在打印星星n-1
后忘记再次打印外壳。n
例如,对于n = 2
,添加此新打印将替换
*
**
经过
*
**
*
对于更高的值相同n
#include <iostream>
void print_stars (int n) {
if (n < 1) return;
if (n == 1) {
std::cout << '*' << "\n";
} else {
print_stars (n-1);
for (int i = 0; i < n; ++i) std::cout << '*';
std::cout << "\n";
print_stars (n-1);
}
}
int main() {
print_stars (3);
}
推荐阅读
- reactjs - 将相同的道具传递给多个样式组件
- scala - SBT 运行最近停止工作,Play 服务项目没有任何变化
- python-3.x - 我可以使用 ModelSerializer (DRF) 将多个字段移动到 CREATE 方法中的 JSON 字段吗?
- r - 如何将数据框的正元素除以特定数据框列,将负元素除以另一个?
- selenium - scrapy没有进入解析(response.url)
- java - 如何使用 DragEvent 将图像放置在线性布局中
- model-view-controller - Kendo Grid:如何附加到 URL
- javascript - 获取复选框的值并以特定格式显示
- linux - RNGCryptoServiceProvider 取自 /dev/random
- c# - 将网格添加到 DataGrid