C++ | 找规律解法

蛇形矩阵

http://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e

根据观察可以发现,元素 = 上一元素 + (i++)

// 1 3 6 10 15
// 2 5 9 14
// 4 8 13
// 7 12
// 11

// 观察第一行,3 = 1 + 2
// 也可以写为 
int i = 2, 3 = 1 + (i++);
// 同理 
6 = 3 + (i++);
// 那么现在只要推出每行第一个元素以及i的初始值就可以写出代码了

不难发现,行首元素也存在规律

  • 第1行:1
  • 第2行:1+1
  • 第3行:1+1+2

也可以写成 pre + (i++)的形式,代码就出来了

#include<bits/stdc++.h>
using namespace std;

int main() {
    int n;
    cin >> n;

    // 每一列的第一个元素
    int col_1 = 1;
    for (int i = 0; i < n; i++) {
        col_1 += i; // 更新这一列的第一个元素的值
        int temp = col_1;
        for (int j = i + 2; j < n + 2; j++) {
            cout << temp << ' ';
            temp += j;
        }

        cout << endl;
    }
}
全部评论

相关推荐

01-30 22:03
门头沟学院 Java
用微笑面对困难:我滴妈,【俩月】【实习】【主管】仨debuff吃满了,独立设计开发的项目写了绝大占比的运营板块,你独立开发,那维护、问题复盘、日志更新、bug、策划书全是自己整的? 不建议写那么大,可以从小出发更容易
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务