C++信息学奥赛练习题-杨辉三角

杨辉三角形

时间限制: 1000 ms 内存限制: 65536 KB

提交数:71618 通过数: 47548

【题目描述】

例5.11 打印杨辉三角形的前n(2≤n≤20)行。杨辉三角形如下图:

当n=5时

复制代码
        1
      1   1
    1   2   1
  1   3   3   1
1   4   6   4   1

输出:

复制代码
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1

【输入】

输入行数n。

【输出】

输出如题述三角形。n行,每行各数之间用一个空格隔开。

【输入样例】

复制代码
5

【输出样例】

复制代码
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1

这是一个典型双循环与二维数组结合的问题。

|-------------------|-------------------|--------------------|--------------------|-------------------|-------------------|
| 1 a[1][1] | | | | | |
| 1 a[2][1] | 1 a[2][2] | | | | |
| 1 a[3][1] | 2 a[3][2] | 1 a[3][3] | | | |
| 1 a[4][1] | 3 a[4][2] | 3 a[4][3] | 1 a[4][4] | | |
| 1 a[5][1] | 4 a[5][2] | 6 a[5][3] | 4 a[5][4] | 1 a[5][5] | |
| 1 a[6][1] | 5 a[6][2] | 10 a[6][3] | 10 a[6][4] | 5 a[6][5] | 1 a[6][6] |

答案代码如下

cpp 复制代码
#include<iostream>
using namespace std;
int main()
{
	int a[100][100],i,j,n;
	cin>>n;
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=i;j++)
		{
			if(j==1||j==i) a[i][j]=1;
			else if(i>3&&j!=1||j!=i) a[i][j]=a[i-1][j-1]+a[i-1][j];
		}
	}
	for(i=1;i<=n;i++)
		{
			for(j=1;j<=i;j++)
			{
				cout<<a[i][j]<<" ";
			}
			cout<<endl;
		}
} 
相关推荐
cpp_25011 小时前
P1024 [NOIP 2001 提高组] 一元三次方程求解
数据结构·c++·算法·题解·二分答案·洛谷·csp
田梓燊7 小时前
力扣:23.合并 K 个升序链表
算法·leetcode·链表
re林檎8 小时前
算法札记——4.27
算法
AI人工智能+电脑小能手8 小时前
【大白话说Java面试题】【Java基础篇】第15题:JDK1.7中HashMap扩容为什么会发生死循环?如何解决
java·开发语言·数据结构·后端·面试·哈希算法
数据牧羊人的成长笔记9 小时前
逻辑回归与Softmax回归
算法·回归·逻辑回归
郑州光合科技余经理9 小时前
同城O2O海外版二次开发实战:从支付网关到配送算法
开发语言·前端·后端·算法·架构·uni-app·php
张健115640964810 小时前
使用信号量限制并发数量
开发语言·c++
jc062010 小时前
6.1云原生之Docker
c++·docker·云原生
Mrlxl.cn11 小时前
计算机网络——网络层
c语言·数据结构·计算机网络·考研
d111111111d12 小时前
STM32-UART封装问题解析
笔记·stm32·单片机·嵌入式硬件·学习·算法