You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何不使用row变量初始化count来打印指定数字图案?

修正代码实现指定数字图案打印

问题描述

输入N(示例为4),需打印如下数字图案:

4 (input)
1   
2   3   
3   4   5   
4   5   6   7   

要求不使用row变量初始化count,而是通过记录前一行的状态确定当前行的起始值,但现有伪代码输出错误图案:

4 (input)
1   
1   2   
2   3   4   
4   5   6   7

错误原因

现有代码在内层循环中每次将k赋值为当前打印的count值(未自增前),导致k无法正确记录下一行的起始值。例如第一行打印1后,k被设为1,使得第二行起始值错误地变为1,而非目标的2。

修正代码

调整k的更新逻辑,在内层循环结束后将k自增1(因为目标图案中每行的起始值比上一行大1),修正后的伪代码如下:

int main ()
{
    int row = 1, k = 1, col, count, N;
    input N;
    while(row <= N) {
        col = 1; count = k;
        while(col <= row){
            print count;
            col++; count++;
        }
        row++; 
        k++; // 更新下一行的起始值
        newline;
    }
    return 0;
}

代码解释

  • 初始化k为1,作为第一行的起始值。
  • 每行循环中,用k初始化count,确保不依赖row变量设置起始值。
  • 内层循环完成当前行的数字打印后,将k自增1,保证下一行的起始值比当前行大1,符合目标图案的规律。
  • 输入N=4时,该代码会输出正确的目标图案。

内容的提问来源于stack exchange,提问作者Pankaj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 17:08:19