怎么用vb程序编杨辉三角形 10
展开全部
//队列-杨辉三角-定稿
#include <iostream>
using namespace std;
template <class T>
class SeqQueue //循环队列的类定义
{
public:
SeqQueue(){ maxSize=50; element=new T[maxSize]; front=0; rear=0; } ~SeqQueue(){delete[] element;} //析构函数
bool EnQueue(const T& x); //若队列不满,则将x进队,否则一处处理
bool DeQueue(T& x); //若队列不空,则退出队头元素x
bool getFront(); //若队列不空,则返回队首元素的值
bool IsEmpty(){return(front==rear)?true:false;} //判断队列空否
bool IsFull() //判断队列满否
{return ((rear+1)%maxSize==front)?true:false;}
void makeEmpty() //清空队列
{front=rear=0;cout<<"队列已清空!"<<endl;}
void getSize()const{ //返回队列的长度
cout<<"队列的长度为:"<<(rear - front + maxSize)%maxSize<<endl;}
void YangHui(int n); //杨辉三角
private:
int rear, front; //队尾与队首指针
T * element; //存放队列元素的数组
int maxSize; //队列最大可容纳元素个数
};
template <class T>
bool SeqQueue<T>::EnQueue (const T& x) //进队操作
{ //若队列不满,则将元素x插入到该队列的队尾,否则出错处理
if(IsFull()==true)return false; //若队列满则插入失败,返回
element[rear]=x; //按照队尾指针指示的位置插入
rear=(rear+1)%maxSize; //队尾指针加
return true; //插入成功,返回
}
template <class T>
bool SeqQueue<T>::DeQueue (T& x) //退队操作
{ //若队列不空则函数退掉队头元素
if(IsEmpty()){cout<<"队列为空!退队操作失败!"<<endl;return false;}
x=element[front];
front=(front+1)%maxSize; //队头指针加
return true;
}
template <class T>
bool SeqQueue<T>::getFront () //若队列不空则退掉队头元素
{
if (IsEmpty()){cout<<"队列为空!不能返回队首元素的值!"<<endl;return false;}
cout<<"队首元素为:"<<element[front]<<endl;
return true;
}
template <class T>
void SeqQueue<T>::YangHui(int n)
{
SeqQueue q; //建立队列对象
int i=1,j,s=0,k=0,t,u; //计算下一行系数时用到的工作单元
q.EnQueue(i);q.EnQueue(i); //预先放入第一行的两个系数
for(i=1;i<=n;i++) //逐行处理
{
cout<<endl; //换一行
q.EnQueue(k); //各行间插入一个
for(j=1;j<=i+2;j++) //处理第i行的i+2个系数(包括一个)
{
q.DeQueue(t); //读取一个系数
u=s+t;q.EnQueue(u); //计算下一行系数,并进队列
s=t;
if(j!=i+2) cout<<s<<' '; //打印一个系数,第i+2个是
}
}
}
int main() //主函数
{
SeqQueue <int> s;
int n;
cout<<"请输入二项式系数:"<<endl;
cin>>n;
cout<<"杨辉三角为:";
s.YangHui (n);
return 0;
}
以上是VC++的。
#include <iostream>
using namespace std;
template <class T>
class SeqQueue //循环队列的类定义
{
public:
SeqQueue(){ maxSize=50; element=new T[maxSize]; front=0; rear=0; } ~SeqQueue(){delete[] element;} //析构函数
bool EnQueue(const T& x); //若队列不满,则将x进队,否则一处处理
bool DeQueue(T& x); //若队列不空,则退出队头元素x
bool getFront(); //若队列不空,则返回队首元素的值
bool IsEmpty(){return(front==rear)?true:false;} //判断队列空否
bool IsFull() //判断队列满否
{return ((rear+1)%maxSize==front)?true:false;}
void makeEmpty() //清空队列
{front=rear=0;cout<<"队列已清空!"<<endl;}
void getSize()const{ //返回队列的长度
cout<<"队列的长度为:"<<(rear - front + maxSize)%maxSize<<endl;}
void YangHui(int n); //杨辉三角
private:
int rear, front; //队尾与队首指针
T * element; //存放队列元素的数组
int maxSize; //队列最大可容纳元素个数
};
template <class T>
bool SeqQueue<T>::EnQueue (const T& x) //进队操作
{ //若队列不满,则将元素x插入到该队列的队尾,否则出错处理
if(IsFull()==true)return false; //若队列满则插入失败,返回
element[rear]=x; //按照队尾指针指示的位置插入
rear=(rear+1)%maxSize; //队尾指针加
return true; //插入成功,返回
}
template <class T>
bool SeqQueue<T>::DeQueue (T& x) //退队操作
{ //若队列不空则函数退掉队头元素
if(IsEmpty()){cout<<"队列为空!退队操作失败!"<<endl;return false;}
x=element[front];
front=(front+1)%maxSize; //队头指针加
return true;
}
template <class T>
bool SeqQueue<T>::getFront () //若队列不空则退掉队头元素
{
if (IsEmpty()){cout<<"队列为空!不能返回队首元素的值!"<<endl;return false;}
cout<<"队首元素为:"<<element[front]<<endl;
return true;
}
template <class T>
void SeqQueue<T>::YangHui(int n)
{
SeqQueue q; //建立队列对象
int i=1,j,s=0,k=0,t,u; //计算下一行系数时用到的工作单元
q.EnQueue(i);q.EnQueue(i); //预先放入第一行的两个系数
for(i=1;i<=n;i++) //逐行处理
{
cout<<endl; //换一行
q.EnQueue(k); //各行间插入一个
for(j=1;j<=i+2;j++) //处理第i行的i+2个系数(包括一个)
{
q.DeQueue(t); //读取一个系数
u=s+t;q.EnQueue(u); //计算下一行系数,并进队列
s=t;
if(j!=i+2) cout<<s<<' '; //打印一个系数,第i+2个是
}
}
}
int main() //主函数
{
SeqQueue <int> s;
int n;
cout<<"请输入二项式系数:"<<endl;
cin>>n;
cout<<"杨辉三角为:";
s.YangHui (n);
return 0;
}
以上是VC++的。
展开全部
Option Explicit
Private Sub Command1_Click()
Dim i As Integer, j As Integer, a(10, 10) As Integer
For i = 2 To 10
For j = 2 To i
If i = 1 Or j = i Then
a(i, j) = 1
Else
If i > 2 Then a(i, j) = a(i - 1, j - 1) + a(i - 1, j)
End If
Print a(i, j);
Next
Print
Next
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer, a(10, 10) As Integer
For i = 2 To 10
For j = 2 To i
If i = 1 Or j = i Then
a(i, j) = 1
Else
If i > 2 Then a(i, j) = a(i - 1, j - 1) + a(i - 1, j)
End If
Print a(i, j);
Next
Next
End Sub
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Private Sub Command1_Click()
Dim a%()
n = InputBox("please input n:")
ReDim a(n, n)
For i = 0 To n
For j = 0 To i
If j = 0 Or j = i Then
a(i, j) = 1
Else
a(i, j) = a(i - 1, j - 1) + a(i - 1, j)
End If
Print Tab(j * 6); a(i, j);
Next j
Print
Next i
End Sub
Dim a%()
n = InputBox("please input n:")
ReDim a(n, n)
For i = 0 To n
For j = 0 To i
If j = 0 Or j = i Then
a(i, j) = 1
Else
a(i, j) = a(i - 1, j - 1) + a(i - 1, j)
End If
Print Tab(j * 6); a(i, j);
Next j
Next i
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Private Sub Form_Click()
Const N = 10
Dim a(N, N) As Integer
Dim i, j As Integer
a(0, 0) = 1
a(1, 0) = 1
a(1, 1) = 1
For i = 2 To N - 1
a(i, 0) = 1
a(i, i) = 1
For j = 1 To i - 1
a(i, j) = a(i - 1, j - 1) + a(i - 1, j)
Next j, i
For i = 0 To N - 1
For j = 0 To i
Print a(i, j);
Next j
Print
Next i
Const N = 10
Dim a(N, N) As Integer
Dim i, j As Integer
a(0, 0) = 1
a(1, 0) = 1
a(1, 1) = 1
For i = 2 To N - 1
a(i, 0) = 1
a(i, i) = 1
For j = 1 To i - 1
a(i, j) = a(i - 1, j - 1) + a(i - 1, j)
Next j, i
For i = 0 To N - 1
For j = 0 To i
Print a(i, j);
Next j
Next i
参考资料: Internet
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询