#include<stdlib.h> #include<stdio.h> #include<time.h> #include<iostream> #include<string> #include<vector> #include<Queue> using namespace std; int main() { int n; cout<<“Input the number:”<<endl; cin>>n; int i=1; queue<int> pre; while(i<=n){ //queue<int> pre; queue<int> out; if(n==1){ cout<<1<<endl; break; } if(i==1) { cout<<1<<endl; i++; continue; } else if(i==2) { cout<<1<<” “<<1<<endl; pre.push(1); pre.push(1); i++; continue; } else if(i>=3){ out.push(1); for(int j=0;j<i-2;j++){ //if(!pre.empty()){ int curr=pre.front(); pre.pop(); // if(!pre.empty()) out.push(curr+pre.front()); // } } out.push(1); pre.pop(); } for(int size=1;size<=i;size++){ int current=out.front(); cout<<current<<” “; pre.push(current); out.pop(); } cout<<endl; i++; } system(“pause”); return 0; }
利用c++中提供的现成Queue类实现。杨辉三角的构造方法是将三角形每行两边的元素置1,其他元素为这个元素“肩”上元素之和。