3529. 梵高先生

1574080260

include

int main(){
int n;
scanf(“%d”,&n);
if(n>=1){
printf(“1\n”);
}
if(n>=2){
printf(“1 1\n”);
}
if(n>=3){
printf(“1 2 1\n”);
}
if(n>=4){
printf(“1 3 3 1\n”);
}
if(n>=5){
printf(“1 4 6 4 1\n”);
}
if(n>=6){
printf(“1 5 10 10 5 1\n”);
}
if(n>=7){
printf(“1 6 15 20 15 6 1\n”);
}
if(n>=8){
printf(“1 7 21 35 35 21 7 1\n”);
}

 if(n>=9){
    printf("1 8 28 56 70 56 28 8 1\n");
}
 if(n>=10){
    printf("1 9 36 84 126 126 84 36 9 1\n");
}
 if(n>=11){
    printf("1 10 45 120 210 252 210 120 45 10 1\n");
}
 if(n>=12){
    printf("1 11 55 165 330 462 462 330 165 55 11 1\n");
}
 if(n>=13){
    printf("1 12 66 220 495 792 924 792 495 220 66 12 1\n");
}
 if(n>=14){
    printf("1 13 78 286 715 1287 1716 1716 1287 715 286 78 13 1\n");
}
 if(n>=15){
    printf("1 14 91 364 1001 2002 3003 3432 3003 2002 1001 364 91 14 1\n");
}
 if(n>=16){
    printf("1 15 105 455 1365 3003 5005 6435 6435 5005 3003 1365 455 105 15 1\n");
}
 if(n>=17){
    printf("1 16 120 560 1820 4368 8008 11440 12870 11440 8008 4368 1820 560 120 16 1\n");
}
 if(n>=18){
    printf("1 17 136 680 2380 6188 12376 19448 24310 24310 19448 12376 6188 2380 680 136 17 1\n");
}
 if(n>=19){
    printf("1 18 153 816 3060 8568 18564 31824 43758 48620 43758 31824 18564 8568 3060 816 153 18 1\n");
}
 if(n>=20){
    printf("1 19 171 969 3876 11628 27132 50388 75582 92378 92378 75582 50388 27132 11628 3876 969 171 19 1\n");
}

}

lnu_cxn

奈何本人没文化,一句**走天下

cupid_pan

include

using namespace std;

int array[100][100];
int main(){
int n;
cin >> n;
for(int i = 0;i<n;i++){
array[i][0] = 1;
array[i][i] = 1;
}

for(int i=2;i<n;i++){
    for(int j=1;j<i;j++){
        array[i][j] = array[i-1][j-1] + array[i-1][j];
    }
}

for(int i = 0;i<n;i++){
    for(int j = 0;j<=i;j++){
        cout << array[i][j] << " " ;
    }
    cout << endl;
}

}

10205101536

include

include

你们的都太麻烦,直接用队列,只需要O(N)的空间复杂度,具体看代码。思路很简单,看不懂的话跟着代码模拟几行就看懂了
using namespace std;
int main(){
int n;
cin>>n;
if(n==1){
cout<<1;
return 0;
}
if(n == 2){
cout<<1<<endl;
cout<<1<<” “<<1<<endl;
return 0;
}
cout<<1<<endl;
cout<<1<<” “<<1<<endl;
queue nums;
nums.push(1);
nums.push(1);
int temp;
for(int i =1;i<=n-2;i++){
cout<<1<<” “;
for(int j = 0;j<i;j++){
temp = nums.front();
nums.pop();
cout<<temp+nums.front()<<” “;
nums.push(temp+nums.front());
}
cout<<1<<endl;
nums.push(1);
}
return 0;

}

10205101536

前面两个if判断是判断特殊情况,从n>=3开始,几行代码迭代就好了

cupid_pan

include

using namespace std;

int array[100][100];
int main(){
int n;
cin >> n;
for(int i = 0;i<n;i++){
array[i][0] = 1;
array[i][i] = 1;
}

for(int i=2;i<n;i++){
    for(int j=1;j<i;j++){
        array[i][j] = array[i-1][j-1] + array[i-1][j];
    }
}

for(int i = 0;i<n;i++){
    for(int j = 0;j<=i;j++){
        cout << array[i][j] << " " ;
    }
    cout << endl;
}

}

2206317497

include

using namespace std;
int main()
{
int a[20][20];
for (int i = 0; i < 20; i++)
{
for (int j = 0; j < 20; j++)
{
if(j==0)a[i][j] = 1;
else a[i][j] = 0;
}
}
a[0][0] = 1;
for (int i = 1; i < 20; i++)
{
for (int j = 1; j < 20; j++)
{
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
}
}
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < i+1; j++)
{
cout << a[i][j];
if (j != i)cout << ” “;
}
cout << endl;
}
}

beginning.

感觉不太用STL
毕竟只有20行 直接使用杨辉三角的定义就可以啦

#include <bits/stdc++.h>
using namespace std;

int print(unsigned matrix[][20], int input );

int main() {
    int input = 0;
    unsigned matrix [20][20];
    scanf("%d",&input);

    for(int j = 0; j < input ; j ++){
        matrix [j][0] = 1;
        matrix [j][j] = 1;
    }

    if (input <=2 ){
        print(matrix,input);
        return 0;
    }

    int line;
    for (line = 2 ; line < input ; line ++){
        for(int i = 1 ; i < line ; i ++){
            matrix[line][i]= matrix[line-1][i-1] + matrix[line-1][i];
        }
    }
    print(matrix,input);
    return 0;
}

int print(unsigned (*matrix)[20], int input) {
    for(int i = 0 ; i < input ; i ++){
        for (int j = 0 ; j <= i ; j ++){
            j==0?printf("%u",matrix[i][j]):printf(" %u",matrix[i][j]);
        }
        printf("\n");
    }
    return 0;
}
chloroplastt

include

using namespace std;
int main(){
int a[21][21] = {0};
int n;
scanf(“%d”, &n);
a[1][1]=1;
for(int i=1;i<=n;i++){
for(int j=1;j<=i;j++){
if(j==1){
a[i][j] = 1;
}
else{
a[i][j] = a[i-1][j-1]+a[i-1][j];
}
printf(“%d”, a[i][j]);
if(j<i) printf(” “);

    }
    printf("\n");
}
return 0;

}

lawson

1.用二维数组存储
2.当前数等于肩膀上的两个数之和
3.代码略

Fifnmar

有时候,我真的很好奇为什么同样的逻辑,在 EOJ 上 C 代码会比 C++ 快……

#include <stdio.h>

nums[20] = { 1 }, i, j, n;

main() {
    scanf("%d", &n);
    for (; i != n; ++i) {
        printf("%d", nums[0]);
        for (j = i; j; --j) {
            nums[j] += nums[j - 1];
        }
        for (j = 1; j <= i; ++j) {
            printf(" %d", nums[j]);
        }
        putchar('\n');
    }
}
Twisted9

组合数

你当前正在回复 博客/题目
存在问题!