怎么用vb程序编杨辉三角形 10

 我来答
yehuadashi
2010-03-17
知道答主
回答量:10
采纳率:0%
帮助的人:5.6万
展开全部
//队列-杨辉三角-定稿

#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++的。
luomandick
2010-03-13 · TA获得超过1175个赞
知道小有建树答主
回答量:902
采纳率:0%
帮助的人:713万
展开全部
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
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
种水福506
2012-06-24
知道答主
回答量:4
采纳率:0%
帮助的人:6400
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我是东寿
2010-03-22
知道答主
回答量:19
采纳率:0%
帮助的人:0
展开全部
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

参考资料: Internet

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式