印刷半金字塔
Printing half pyramid
本文关键字:金字塔 更新时间:2023-10-16
如果输入为 6,我希望金字塔看起来像这样
0
12
345
6789
01234
567890
这是我的代码
void HalfPyramid(int num)
{
for (int a=0; a<num; a++)
{
for (int b=0; b<num-a; b++)
{
cout << " ";
}
for (int c=0; c<a; c++)
{
cout << a;
}
cout << endl;
}
}
我得到了
1
22
333
4444
55555
不确定如何显示数字在整个过程中增加,我尝试输出a
和a+1
。
你需要另一个变量。 该变量需要从 0 开始,并在每次打印时递增。 然后,由于您需要在打印 9 后回绕到 0,我们将使用模运算符将输出限制在 [0, 9] 的范围。 用你得到的一切
void HalfPyramid(int num)
{
int output = 0;
for (int a=1; a<num+1; a++)
{
for (int b=0; b<num-a; b++)
{
cout << " ";
}
for (int c=0; c<a; c++)
{
cout << output++ % 10;
}
cout << endl;
}
}
void HalfPyramid(int num)
{
int cur = 0;
for (int a=0; a<num; a++)
{
for (int b = 1; b < num - a ; b++)
{
cout << " ";
}
for (int c=0; c < a + 1; c++)
{
cout << cur;
cur = (cur+1)%10;
}
cout << endl;
}
}
其他答案已经提供了HalfPyramid
的工作版本。希望这个答案能让你对逻辑和功能的看法有所不同。我喜欢创建小函数来捕捉我想要做的本质,而不是使用语言来做这件事。
bool isSpace(int num, int a, int b)
{
return ((a + b) < (num - 1));
}
int getNextDigit(int in)
{
return (in+1)%10;
}
void HalfPyramid(int num)
{
int digit = 0;
for (int a = 0; a < num; ++a)
{
for (int b = 0; b < num; ++b)
{
if ( isSpace(num, a, b) )
{
cout << " ";
}
else
{
cout << digit;
digit = getNextDigit(digit);
}
}
cout << endl;
}
}
相关文章:
- C++星纹金字塔
- 我想通过OpenGL创建3D金字塔
- 现代OpenGL纹理金字塔
- 3D金字塔与OPENGL
- 对我的 c++ 金字塔分配进行小调整?我应该怎么做?
- 有没有办法用单行逻辑代码打印金字塔星形图案?面试官向我的朋友问了这个问题
- 如何打印出带有数字的完整金字塔
- (显示金字塔)编写一个程序,该程序提示用户输入1到15的整数并显示金字塔
- C++自上而下的金字塔
- 如何使程序谁将计算金字塔有多少个阶段
- 印刷半金字塔
- 画一个立方体和金字塔
- 在C++中制作金字塔 在程序中使用函数和循环
- 如何创建一个程序,用户输入整数并输出90度数字金字塔
- 在C 中未获得所需的1-0模式金字塔输出
- 图像调整大小与生成行人检测ROI的图像金字塔-OpenCV
- GPU加速LK金字塔中的窗口大小限制
- C++ 反数金字塔
- 在C++建造两半金字塔
- 高斯金字塔出界