1.十进制转换为二进制:
http://blog.csdn.net/yillc/article/details/6824135
- #include <cstdio>
- #include <stack>
- using namespace std;
- int main()
- {
- stack<int> S;
- int DecNum=0;
- scanf("%d",&DecNum);//输入一个十进制数
- int r=1;
- while(r!=0)
- {
- r=DecNum/2;
- S.push(DecNum%2);
- DecNum/=2;
- }
- while(S.empty()==0)
- {
- printf( "%d", S.top( ) );
- S.pop();
- }
- return 0;
- }
2. 括号匹配
判断括号是否匹配的方法:依次读入每个括号,如果是左括号,则压入栈中;如果是右括号,则判断栈顶元素是否是与之匹配的左括号,如果是,则弹出该左括号,如果不是或者栈为空,则可以判定括号不匹配。
- <p>#include <cstdio>
- #include <stack>
- using namespace std;</p><p>int main()
- {
- stack<int> S;
- char str[100];
- scanf("%s",str);//输入一系列括号
- int sign=0;
- for(int i=0;i<sizeof(str);i++)
- {
- if(str[i]=='(')
- S.push(str[i]);
- if(str[i]==')')
- {
- if(S.empty()==1)
- {
- printf("no");
- sign=1;
- break;
- }
- else if(S.top()=='(')
- S.pop();
- else
- {
- printf("no");
- sign=1;
- break;
- }
- }
- }
- if(sign==0)
- {
- if(S.empty()==1) printf("yes");
- else printf("no");
- }
- return 0;
- }</p>
- }