【笔试】算法的暴力美学——牛客 BC140:杨辉三角

一、题目描述

二、算法原理

思路:根据题目要求:每个数 = 左上方 + 上方的值的和,那么我们简单模拟就行了;

1)创建一个二维数组

2)先把第一个数字 1 入到二维数组中,以他为基准,让下面的数字不断的计算

3)不断的根据题目的要求计算当前的数字,每个数 = 左上方 + 上方的值的和,当我们计算出来的值等于 0 就没有必要入二维数组了,在杨辉三角中的值是没有等于 0 的;注意:当前我们只要计算出来杨辉三角的值就行了,不要注意格式输出;

4)控制格式输出,我们把杨辉三角的值转成 string ,当这个 string 的长度小于 5 时,就计算题目的长度差:5 - string.size();往 string 补充长度差个的空格;

三、代码实现

cpp 复制代码
#include <iostream>
#include <vector>
#include <string>
using namespace std;

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

    vector<vector<int>> vis(n);
    vis[0].push_back({1});//初始化

    for(int i = 1; i < n; i++)//构造杨辉三角
    {
        int j = 0;
        while(true)//每行的数字的获取
        {
            //当前的数字 = (横坐标 - 1 ,纵坐标相同) + (横坐标 - 1 ,纵坐标 - 1)
            //注意越界情况
            int left = (j - 1 < 0 || j - 1 >= vis[i - 1].size()) ? 0 : vis[i - 1][j - 1];
            int right = j < vis[i - 1].size() ? vis[i - 1][j] : 0;
            int cout = right + left;
            if(cout == 0) break;
            vis[i].push_back(cout);
            j++; 
        }
    }

    int x = vis.size();

    for(int i = 0; i < x; i++)//打印杨辉三角,控制格式输出
    {
        for(int j = 0; j < vis[i].size(); j++)
        {
            string s = to_string(vis[i][j]);
            if(s.size() < 5)
            {
                int seq = 5 - s.size();
                string tmp(seq,' ');
                s = tmp + s;
            }
            cout << s;
        }
        cout << endl;
    }
    
    return 0;
}
相关推荐
灵枢时代2 小时前
小程序在生鲜配送行业,如何设计夜间预约和次日达的订单处理流程?
数据结构·人工智能·小程序
一条大祥脚2 小时前
ABC468 扫描线|贡献法|二阶差分|线段树优化DP
数据结构·算法
mifengxing1 天前
LeetCode 189 轮转数组|3种解法拆解,从暴力到O(1)原地最优解
数据结构·算法·leetcode
MIngYaaa5201 天前
2026暑期牛客多校3 2026-7-24
数据结构·算法·000
2501_937860941 天前
Java 集合底层深度剖析:Map 与 Set、二叉搜索树、哈希表全解
java·数据结构·散列表
Hommy881 天前
【剪映小助手】字符串列表转对象接口(Str List To Obds)
数据结构·list·剪映小助手·视频剪辑自动化·剪映api·开源剪映小助手
noipp1 天前
推荐题目:洛谷 P3726 [AHOI2017/HNOI2017] 抛硬币
c语言·数据结构·c++·算法·编程·洛谷·luogu
wabs6661 天前
关于链表【力扣19.删除链表的倒数第N个节点的思考】
数据结构·leetcode·链表
Rabitebla1 天前
C++ STL 之 set 详解:从底层红黑树到实际应用
开发语言·数据结构·c++·算法·leetcode
520拼好饭被践踏1 天前
JAVA+Agent学习day26
java·开发语言·数据结构·学习·agent