在一行输入一个整数
![]()
。
输出杨辉三角形的前
行。每一行从该行第一个元素开始,依次输出;每两个数之间用一个空格分隔。请不要在行末输出多余的空格。
4
1 1 1 1 2 1 1 3 3 1
当时,杨辉三角形的前 4 行如上所示。
1
1
当时,杨辉三角形只有第 1 行,元素为
。
#include <stdio.h>
int main()
{
int n=0;
scanf("%d",&n);
int a[n+1][n+1];
for(int i=0;i<n;i++)
{
a[i][i]=1;
a[i][0]=1;
for(int j=0;j<=i;j++)
{
if(j>0&&j<i)//这个限制条件可好的很啊
{
a[i][j]=a[i-1][j]+a[i-1][j-1];
}
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
} #include <iostream>
#include <bits/stdc++.h>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
int s[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if(j==0||i==j){
s[i][j]=1;
}else if(j!=0&&i!=j&&i>j)
{
s[i][j] = s[i-1][j]+s[i-1][j-1];
}
else {
s[i][j]=0;
}
if(s[i][j]!=0){
cout << s[i][j] << " ";
}
}
cout << endl;
}
} #include <iostream>
using namespace std;
#include <vector>
int main() {
int n;
cin >> n;
vector<vector<int>> v(n);
for(int i = 0; i < n; ++i){
v[i].resize(i+1);
v[i][0] = 1;
v[i][i] = 1;
for(int j = 1; j < i; ++j){
v[i][j] = v[i-1][j] + v[i-1][j-1];
}
}
for(int i = 0; i < n; ++i){
for(int j = 0; j <= i; ++j){
cout << v[i][j] << ' ';
}
cout << endl;
}
}
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
int array[n][n];
for(int i=0;i<n;i++){
array[i][i]=1;
array[i][0]=1;
}
//(1)n×n的矩阵,副对角线和第一列(数组序号为0)都为1
for(int i=2;i<n;i++){
for(int j=1;j<=i-1;j++){
array[i][j]=array[i-1][j-1]+array[i-1][j];
}
}
//(2)从矩阵的第三行(数组序号为2)开始,有经典规律a[i][j]=a[i-1][j-1]+a[i-1][j]
//外层i控制行数切换,内层j控制列数切换,易错点为j<=i,j从1开始
for(int i=0;i<n;i++){
for(int j=0;j<=i;j++){
printf("%d ",array[i][j]);
}
printf("\n") ;
}
//(3)输出杨辉三角,注意在本行全部遍历后添加换行符。
return 0;
}
#include <bits/stdc++.h>
using namespace std;
#define endl "\n"
using vi = vector<int>;
void solve() {
int n;cin >> n;
vi a(n);
a[0] = 1;
for (int i = 0;i < n;i++) {
for (int j = i;j>=1;j--) {
a[j] += a[j - 1];
}
for (int j = 0;j <= i;j++) {
cout << a[j] << " ";
}
cout << endl;
}
}
signed main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);cout.tie(nullptr);
int t = 1;
//cin >> t;
for (int i = 1; i <= t; i++) {
//cout << "----Test " << i << "----" << endl;
solve();
}
return 0;
} 一维的
import sys for line in sys.stdin: n = int(line.strip()) dp = [[0]*n for _ in range(n)] for i in range(n): dp[i][0]=1 for i in range(1,n): for j in range(1,n): dp[i][j]=dp[i-1][j]+dp[i-1][j-1] for i in dp: for j in i: if j: print(j,end=" ") print()