2 条题解

  • 2
    @ 2025-8-1 8:46:25
    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
    	long long int a[100][100],n;//注意要用longlong;
    	cin>>n;
    	for(int i=1;i<=n;i++)
    	{
    	a[i][1]=1;
    	a[i][i]=1;
        }
    	for(int i=2;i<=n;i++)
    	{
    		for(int j=2;j<=i;j++)
    		a[i][j]=a[i-1][j-1]+a[i-1][j];
    	}
    	for(int i=1;i<=n;i++)
    	{
            for(int j=1;j<=i;j++)
    		{
    			cout<<a[i][j]<<" ";
    		}
    		cout<<endl;
    	}
    }
    
    
    
    • 0
      @ 2026-8-20 9:03:14

      提示##

      这道题需要用到二维数组呀~

      题目大意## 看题会发现杨辉三角其实很简单,不就是自己本身=上一行同列+上一行上一列(不要去理解题目中说的什么肩上的书啦~),那么只要二维数组打过基础的同学就能做出来了!话不多说,上代码~

      #include <bits/stdc++.h>
      using namespace std;
      int main()
      {
      	int a[55][55]={};//定义一个空间为55行55列的二维数组
      	int n;//定义n
      	cin>>n;
      	for(int i=0;i<n;i++){
      		a[i][0]=1;//每行第一列赋值为一
      		a[i][i]=1;//每行最后一列赋值为一
      	}
      	for(int i=0;i<n;i++){
      		for(int j=0;j<=i;j++){//注意是j<=i,杨辉三角是三角而不是矩阵(二维数组)
      			if(a[i][j]==0)//如果!=1(==0)
      			{
      				a[i][j]=a[i-1][j]+a[i-1][j-1];//杨辉三角规则
      			}
      		}
      	}
      	for(int i=0;i<n;i++){
      		for(int j=0;j<=i;j++){
      			cout<<a[i][j]<<" ";//输出记得空格
      		}
      		cout<<endl; 
      	}
      	return 0;
      }
      ```
      • 1

      信息

      ID
      184
      时间
      1000ms
      内存
      256MiB
      难度
      4
      标签
      (无)
      递交数
      41
      已通过
      21
      上传者