华师一附中OI组

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2330|回复: 7
打印 上一主题 下一主题

打印杨辉三角

[复制链接]

738

主题

1485

帖子

5422

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5422
跳转到指定楼层
楼主
发表于 2018-6-3 11:58:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
打印杨辉三角,比如n=9,输出
                   1
                 1   1
               1   2   1
             1   3   3   1
           1   4   6   4   1
         1   5  10  10   5   1
       1   6  15  20  15   6   1
     1   7  21  35  35  21   7   1
   1   8  28  56  70  56  28   8   1
回复

使用道具 举报

738

主题

1485

帖子

5422

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5422
沙发
 楼主| 发表于 2018-6-3 11:58:36 | 只看该作者
  1. #include <iostream>
  2. #include <iomanip>
  3. using namespace std;
  4. int n;
  5. void way1()
  6. {
  7.     int a[100][100];  //二维数组做法
  8.     int i,j;
  9.     a[1][1]=1;
  10.     for (i=2; i<=n; i++)
  11.     {
  12.         a[i][1]=a[i][i]=1;
  13.         for (j=2; j<=i-1; j++) a[i][j]=a[i-1][j]+a[i-1][j-1];
  14.     }
  15.     for (i=1; i<=n; i++)
  16.     {
  17.         for (j=1; j<=n-i; j++) cout<<"  ";
  18.         for (j=1; j<=i; j++) cout<<setw(4)<<a[i][j];
  19.         cout<<endl;
  20.     }
  21. }
  22. void way2()
  23. {
  24.     int b[2][100];//滚动数组做法
  25.     int i,j;
  26.     int p;//重要的滚动变量
  27.     for (i=0; i<=n; i++)
  28.     {
  29.         p=i%2;    //也可以p=1-p
  30.         b[p][1]=b[p][i]=1;   //首尾的特殊处理
  31.         for (j=2; j<=i-1; j++) b[p][j]=b[1-p][j]+b[1-p][j-1];

  32.         for (j=1; j<=n-i; j++) cout<<"  ";
  33.         for (j=1; j<=i; j++) cout<<setw(4)<<b[p][j];
  34.         cout<<endl;
  35.     }
  36. }
  37. void way3()
  38. {
  39.     int c[100]; //一维数组做法
  40.     int i,j;
  41.     for (i=0; i<=n; i++)
  42.     {
  43.         c[0]=c[i]=1;
  44.         for (j=i-1;j>=1;j--) c[j]=c[j]+c[j-1];  //回忆背包问题 为什么要从后往前推?

  45.         for (j=0; j<=n-i; j++) cout<<"  ";
  46.         for (j=0; j<=i; j++) cout<<setw(4)<<c[j];
  47.         cout<<endl;
  48.     }
  49. }
  50. int main()
  51. {
  52.     n=9;
  53.     way1();cout<<endl;
  54.     way2();cout<<endl;
  55.     way3();cout<<endl;
  56.     return 0;
  57. }

复制代码
回复 支持 反对

使用道具 举报

9

主题

158

帖子

470

积分

华一学生

积分
470
QQ
板凳
发表于 2018-7-27 20:43:52 | 只看该作者
  1. #include<iostream>
  2. #include<iomanip>
  3. using namespace std;
  4. int a[21],n;
  5. int main()
  6. {
  7.     cin>>n;a[1]=1;
  8.     for(int i=1;i<=n;i++)
  9.     {
  10.         for(int j=n-i+1;j>=1;j--)cout<<' ';
  11.         for(int j=i;j>=1;j--)a[j]+=a[j-1];
  12.         for(int j=1;j<=i;j++)cout<<a[j]<<' ';
  13.         cout<<endl;
  14.     }
  15.     return 0;
  16. }
复制代码
回复 支持 反对

使用道具 举报

9

主题

89

帖子

292

积分

华一学生

积分
292
地板
发表于 2018-7-28 08:46:48 | 只看该作者
  1. #include<iostream>
  2. #include<iomanip>
  3. using namespace std;
  4. int n,a[110];
  5. int main()
  6. {
  7.     cin>>n;
  8.     a[1]=1;
  9.     cout<<setw(3)<<a[1]<<endl;
  10.     for (int i=2;i<=n;i++)
  11.     {
  12.         a[i]=1;
  13.         for (int j=i-1;j>=1;j--) a[j]=a[j]+a[j-1];
  14.         for (int j=1;j<=i;j++) cout<<setw(3)<<a[j];
  15.         cout<<endl;
  16.     }
  17.     return 0;
  18. }
复制代码
回复 支持 反对

使用道具 举报

50

主题

215

帖子

619

积分

高级会员

Rank: 4

积分
619
5#
发表于 2018-7-29 19:34:00 | 只看该作者
  1. #include<iostream>
  2. #include<iomanip>
  3. using namespace std;
  4. const int mn=11;
  5. int a[mn][100],aa[2][mn];
  6. int r,c,m,n,p;
  7. int main()
  8. {
  9.     cout<<"\n=======way1========\n";
  10.     for(r=0;r<=mn-1;r++)
  11.     {
  12.         a[r][0]=a[r][r]=1;
  13.         for(c=1;c<=r;c++)a[r][c]=a[r-1][c-1]+a[r-1][c];
  14.     }
  15.     for(r=0;r<=mn-1;r++)
  16.     {
  17.         for(m=1;m<=mn-r;m++)cout<<"  ";
  18.         for(c=0;c<=r;c++)cout<<setw(4)<<a[r][c];
  19.         cout<<endl;
  20.     }
  21. }
复制代码
回复 支持 反对

使用道具 举报

2

主题

19

帖子

114

积分

注册会员

Rank: 2

积分
114
6#
发表于 2019-10-31 13:36:27 | 只看该作者
  1. #include<iostream>
  2. #include<iomanip>
  3. using namespace std;
  4. int a[100]{1,},n;
  5. int main()
  6. {
  7.     cin>>n;
  8.     for(int i=1;i<=n;i++)
  9.     {
  10.         for(int j=n-i+1;j>=1;j--) cout<<' ';
  11.         for(int j=i;j>=1;j--) a[j]+=a[j-1];
  12.         for(int j=1;j<=i;j++) cout<<a[j]<<' ';
  13.         cout<<endl;
  14.     }
  15.     return 0;
  16. }
复制代码
回复 支持 反对

使用道具 举报

2

主题

19

帖子

114

积分

注册会员

Rank: 2

积分
114
7#
发表于 2019-10-31 13:45:52 | 只看该作者
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|服务支持:DZ动力|华师一附中OI组  

GMT+8, 2024-12-25 13:59 , Processed in 0.399966 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表