嵌套循环:数字模式
nested loop: number pattern
在C++中,我想要一个数字模式:
1
2 1
3 2 1
4 3 2 1
5 4 3 2
6 5 4 3
7 6 5 4
8 7 6 5
9 8 7 6
对于第 1-4 行,我这样做了:
for(size_t i = 0; i < m; i++) {
for(size_t j = 0 ; j < i+1; j++) {
cout<<j;
}
cout<<endl;
}
要完成第 5 - 9 行,我应该用 2 for 循环分隔上面的模式吗?,是否有一个想法(一个实际有效的)?请给我一些建议,因为我的不起作用。
这是一个
经典的嵌套循环案例,就像你一样,但有一些小的模组。让我们看一下实际的预期输出:
1
2 1
3 2 1
4 3 2 1
5 4 3 2
6 5 4 3
7 6 5 4
8 7 6 5
9 8 7 6
每行的起点是一个递增的数字 1 到 9(包括 1 到 9),因此外部循环控制:
for (int start = 1; start <= 9; start++) ...
在该循环中,从起始数字开始计数,直到满足以下条件之一:
- 您达到零(第一行到第四行);或
- 您到达的数字比起始数字少 4(第 4 行到第 9 行)。
您会注意到第四行同时满足这两个终止条件,因此哪一行导致内部循环完成无关紧要。另请注意,您不会为终止条件打印任何内容。
因此,内部循环将如下所示:
for (int num = start; (num > 0) && (num > start - 4); num--) ...
当然,在内部循环中,您需要实际打印出数字。将它们捆绑在一起,您可以通过以下方法实现所需的输出:
#include <iostream>
int main (void) {
// Lines from 1 to 9 inclusive.
for (int start = 1; start <= 9; start++) {
// Output from start to start-3 inclusive,
// stopping early if you hit zero.
for (int num = start; (num > 0) && (num > start - 4); num--) {
std::cout << num << ' ';
}
// Move to next line.
std::cout << 'n';
}
return 0;
}
这就是
你想要的
using namespace std;
int
main()
{
for(int i = 0; i < 10; i ++){
int count = 0;
for(int j = i+1; j >0;j-- ){
if (count >3) break;
cout << j <<" ";
count++;
}
cout << endl;
}
}
我的五美分:)
#include <iostream>
int main()
{
const size_t N = 4;
for ( size_t i = 1; i <= 9; i++ )
{
for ( size_t j = 0; j < N && i - j != 0; j++ ) std::cout << i - j << ' ';
std::cout << std::endl;
}
return 0;
}
输出为
1
2 1
3 2 1
4 3 2 1
5 4 3 2
6 5 4 3
7 6 5 4
8 7 6 5
9 8 7 6
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 在C++的一系列数字中查找重复模式
- 正则表达式以匹配数字的重复模式,后跟任何类型的分隔符?
- 在此任务上遇到麻烦,我们需要使用指针和数组来找到文本文件中某些数字的平均值,中值和模式
- 编写模式识别'函数以查找特定顺序出现的数字?C++
- 从列表到数组C 查找模式或最常见的数字
- 在x86_64模式下,64 位数字不适合寄存器整数
- 通过2D阵列C 移动锯齿ZAG模式的数字
- 为什么 std::setprecision(6) 在固定宽度模式式传输超过 6 位数字
- c++rand()和来自boost的RNG生成相同的数字(在发布模式中),即使srand(0)也是如此
- 打印重复数字模式
- 如何在C++中生成具有奇怪模式的数字
- 无模式例外是什么意思?(数组中出现次数最多的数字)
- 查找 n 个数字的模式
- 嵌套循环:数字模式
- 以二进制模式扫描文件,并将十六进制字符解释为C++中的实际数字
- 使用递归的c++数字模式函数
- 创建一个数字模式
- 是否可以在CEdit控件的纯数字和字母数字输入模式之间切换
- 如何在C++中显示此数字模式