杨辉三角形

简介: 杨辉三角形
Description:打印杨辉三角形。
Input:输入数据含有不多于50个的正整数n(n≤10)。
Output:三角形的每个项占3个字符宽。每个三角形之间空一行,最后的三角形之后没有空行。见样本输出。

#include <iostream>
#include <vector>
using namespace std;
inline void printPascalTriangle(int n) {//创建打印杨辉三角函数,内联函数更加省时间
    vector<vector<int>> triangle(n);
    for (int i = 0; i < n; ++i) {
        triangle[i].resize(i + 1);
        triangle[i][0] = triangle[i][i] = 1;
        for (int j = 1; j < i; ++j) {
            triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];
        }//按照杨辉三角规律进行循环
    }
    for (const auto& row : triangle) {
        for (int num : row) {
            cout.width(3);
            cout << num;
        }//注意题干要求输出格式
        cout << endl;
    }
}
int main() {
    int n;
    while (cin >> n)
    {
        printPascalTriangle(n); //调用函数
        cout << endl;
    }
    return 0;
}

输出结果为

修改代码后的结果:

#include <iostream>
#include<iomanip>
using namespace std;
int main() {
    int n;
   while(cin >> n) { 
   int arr[10][10] = {0};
    for (int i = 0; i < n; i++) {
        arr[i][0] = 1;
        arr[i][i] = 1;
        for (int j = 1; j < i; j++) {
            arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
        }
    }
    for (int i = 0; i < n; i++)
    {
        for(int j=n-1-i;j>=0;j--)
        cout << ' ';
        for (int k = 0; k <= i; k++) {
            cout << setw(3) << arr[i][k];
        }
        cout << endl;
    }
}
    return 0;
   }

输出后结果如下:

输出不了题目中的要求格式,求助大佬应该如何加入空格的循环。

再一次对空格的改进:

#include <iostream>
using namespace std;
int main()
{
    int n;
    int data[50][50];
    int i = 0;
    int j = 0;
    while (cin >> n)
    {
        for (i = 0; i < n; i++)
        {
            for (j = 0; j < n; j++)
            {
                data[i][j] = 1;
            }
        }
        for (i = 1; i < n; i++)
        {
            for (j = 1; j < i; j++)
            {
                data[i][j] = data[i - 1][j] + data[i - 1][j - 1];
            }
        }
        for (i = 0; i < n; i++)
        {
            for (int k = 0; k < 2 * (n - 1) - (3 * i / 2)-n/2; k++)
            {
                cout << " ";
            }
            for (j = 0; j <= i; j++)
            {
                printf("%3d", data[i][j]);
            }
            cout << endl;
        }
    }
    return 0;
}

越来越像了,但还是不对

目录
相关文章
|
虚拟化
VMware虚拟机和主机互相ping不通排查以及解决
VMware虚拟机和主机互相ping不通排查以及解决
VMware虚拟机和主机互相ping不通排查以及解决
|
传感器 数据采集 物联网
探索.NET nanoFramework:为嵌入式设备编程的新途径
探索.NET nanoFramework:为嵌入式设备编程的新途
542 7
|
自动驾驶 物联网 5G
什么是 5G 以及它如何工作?
【8月更文挑战第23天】
3008 0
|
12月前
|
机器学习/深度学习 存储 人工智能
2024阿里云AI交出答卷,全球领先!
2024阿里云AI交出答卷,全球领先!
647 9
2024阿里云AI交出答卷,全球领先!
|
机器学习/深度学习 传感器 安全
基于模糊神经网络的移动机器人路径规划matlab仿真
该程序利用模糊神经网络实现移动机器人的路径规划,能在含5至7个静态未知障碍物的环境中随机导航。机器人配备传感器检测前方及其两侧45度方向上的障碍物距离,并根据这些数据调整其速度和方向。MATLAB2022a版本下,通过模糊逻辑处理传感器信息,生成合理的路径,确保机器人安全到达目标位置。以下是该程序在MATLAB2022a下的测试结果展示。
|
SQL 关系型数据库 MySQL
Navicat 导入和导出 sql文件
Navicat 导入和导出 sql文件
1147 0
Navicat 导入和导出 sql文件
BXA
|
存储 运维 Kubernetes
把Kubernetes用于微服务管理的最佳实践
Kubernetes 是一个开源的容器编排引擎最初由 Google 在内部开发中使用,用于管理其容器集群。它可以自动化应用程序的部署、扩展和管理。
BXA
534 0
|
SQL 存储 安全
docker 安装sqlserver数据库并开启代理(保姆级)
docker 安装sqlserver数据库并开启代理(保姆级)
2739 0
|
XML 移动开发 Shell
CTF中常用的php原生类总结
CTF中常用的php原生类总结
427 0
|
网络协议 虚拟化 网络架构
VM虚拟机三种网络配置详解(桥接、NAT、仅主机)
VM虚拟机三种网络配置详解(桥接、NAT、仅主机)
820 0