用C++语言栈的形式求n!的阶乘以及用栈完成括号匹配检验程序

急用啊!!求求各位编程大神啊!!... 急用啊!!求求各位编程大神啊!! 展开
 我来答
zzhero123
2013-03-21
知道答主
回答量:26
采纳率:0%
帮助的人:20.7万
展开全部
用栈完成括号匹配 这篇是c写的。http://blog.chinaunix.net/uid-7864162-id-2038901.html

c++的话,用c++自带的容器类就可以了。

求n的阶乘
#include<iostream>
#include <stack>

int factorialByStack(int num);

using namespace std;

int main(void)
{
int n = 10;
int result = 0;
result = factorialByStack(n);
std::cout<<result<<std::endl;
return 0;
}
int factorialByStack(int num)
{
stack<int> tmp;
for(; num != 0; --num)
{
tmp.push(num);
}
int result = 1;
while( !tmp.empty() )
{
result *= tmp.top();
tmp.pop();
}
return result;
}
1317204986
2013-03-21 · TA获得超过492个赞
知道小有建树答主
回答量:291
采纳率:0%
帮助的人:357万
展开全部
#include<iostream>
using namespace std;
#define N 1000
class CStack
{
public:
CStack()
{
top=0;
}
void push(int k);
int pop();
bool IsEmpty();
private:
int top;
int data[N];
};
void CStack::push(int k)
{
if(top==(N-1))
{
cout<<"栈已满!\n";
return;
}
data[top++]=k;
}
int CStack::pop()
{
return data[--top];
}
bool CStack::IsEmpty()
{
if(top==0)
return true;
return false;
}
int main()
{
int m,n,t=1;
CStack S;
cin>>n;
m=n;
while(m)
{
S.push(m);
m--;
}
while(!S.IsEmpty())
t*=S.pop();
cout<<n<<"的阶乘为"<<t<<endl;
return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式