在一行输入一个整数
![]()
。
输出杨辉三角形的前
行。每一行从该行第一个元素开始,依次输出;每两个数之间用一个空格分隔。请不要在行末输出多余的空格。
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>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
vector<vector<int>> triangle(n);
for (int i = 0; i < n; i++) {
triangle[i].resize(i + 1);
triangle[i][0] = 1;
triangle[i][i] = 1;
for (int j = 1; j < i; j++) {
triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
cout << triangle[i][j];
if (j < i) {
cout << " ";
}
}
cout << endl;
}
return 0;
}
import math
n = int(input())
for i in range(n):
print(' '.join(map(str,[math.comb(i,j) for j in range(i+1)]))) 使用内置math库求解
#include <stdio.h>
int main() {
int n, i, j;
scanf ("%d", &n);
int N[34][34];
for (i = 0; i < n; i ++) {
printf ("1 ");
N[i][0] = 1, N[i][i] = 1;
for (j = 1; j < i; j ++) {
N[i][j] = N[i - 1][j] + N[i - 1][j - 1];
printf ("%d ", N[i][j]);
}
if (i != 0) printf ("1");
if (n != 1 && i != n - 1) printf ("\n");
}
return 0;
} //不检查presentation实在是太友好了 def main():
n = int(input())
print(1)
if n == 1:
return
print(f'1 1')
if n == 2:
return
a = [1,1]
for i in range(2, n):
b = [1] * n
for j in range(1, i):
b[j] = a[j - 1] + a[j]
a = b[:i + 1]
print(' '.join(map(str, a)))
if __name__ == "__main__":
main()