2个回答
展开全部
用栈完成括号匹配 这篇是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;
}
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;
}
展开全部
#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;
}
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;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询