回 帖 发 新 帖 刷新版面

主题:大神求救啊     杨辉三角

//我只能做到这了 请各位大神指点 
//2.编程打印如下杨辉三角形的前10行(要求用一维数组实现)。(选作)
//提示:初始置第一个元素为1。每行从后往前设置和计算。


#include<iostream.h>

void main()
{
    int i,y,j,k,m,a[55]={1,1,1};


    for(i=2,y=3;i<=10;i++)
    
        for(j=1;j<=i+1;j++)

        {    m-=i;
            y+=j;
        a[y]=a[m-1]+a[m];
        }
    

    for(i=1,j=0;i<55;i++)
    {
        k+=j;
        j+=i;
        a[k]=1;
        a[j]=1;
    }

    for(i=1,j=1,y=0;i<=10;i++)
    {
        y+=i;
        for(;j<=y;j++)
        {
            cout << a[j];
        }
        cout << endl;
    }

    
}
我只能做到这了 请各位大神指点 

回复列表 (共3个回复)

沙发

求各大神帮助啊  出了什么错误啊  要求只能用一维数组

板凳

[font=宋体]
#include<iostream.h>
void main()
{
    int i,y,j,m,a[66]={1};
    for(i=1,y=0,m=1;i<=10;i++)
    {   a[++y]=1;
        for(j=1;j<i;j++) a[++y]=a[m-1]+a[m++];
        a[++y]=1;
        m+=1;
    }
    for(i=0,y=0;i<=10;i++)
    {    for(j=0;j<=i;j++)
         cout << " "<< a[y++];
         cout << endl;
    }
}

[/font]

3 楼

我刚开始学,然后只会下面这个方法,不知道可以满足你的要求否,我用g++可以编译,手机打字,恐有错误,望见谅。

#include<iostream>
using namespace std;
int main(){
  int a[11]={0,1},b[11]={0,1},c[11]={0,1};
  for (int j=1;j<=10;++j){
    cout<<string(20-2*i,' ');
    for(int i=1;i<=j;++i){
      a[i]=c[i]+c[i-1];
      cout.width(4);
      cout<<a[i];
      b[i]=a[i];
      }
   for (int k=1;k<=10;++k) c[k]=b[k];
   cout<<endl;
   }
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册