popnpushtest.cpp

来自「模拟堆栈进栈和出栈操作的两个C++源程序」· C++ 代码 · 共 39 行

CPP
39
字号
//PopnPushTest
#include<iostream>
using namespace std;
int main(){
	unsigned int i,i0,i1,j,k,n=1,n0,n1;
	while(1){
		i0=2;i1=1;
//		cout<<"请输入N值,0结束运行"<<endl;
//		cin>>n;if(n==0) return 0;
		if(n++>9) return 0;
		i=j=k=n;
		while(k--) i1<<=1;
		i1--;k=n;
		while(k--) i1<<=1;
		k=n;
		while(--k){i0<<=2;i0+=2;}//cout<<"i0="<<i0<<" i1="<<i1<<endl;
		while(i0<=i1){
			k=i0;n0=n1=0;
			while(k){
				if(k%2) n1++;else n0++;
				if(n0<n1) break;
				k>>=1;//cout<<"i="<<i<<endl;
			}
			if(n0==n1){//cout<<"n0="<<n0<<' '<<"n1="<<n1<<endl;
				k=i0;i=16;j=2;
				while(i-->n) k<<=2;i=0;
				while(++i<16) j<<=2;i=2*n;
				while(i--){
					if(k/j) cout<<"1";
					else cout<<"0";
					k<<=1;
				}
				cout<<endl;
			}//end if(n0==n1)
			i0+=2;
		}//end while(i0<=i1)
	}// end while(1)
}//end main

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?