逆波兰数
#include <algorithm>
#include <cstring>
#include <cctype>
#include <cstdio>
using namespace std;
char str[1100];
double Ans()
{
scanf( "%s", str );
if( str[0]=='*' )
return Ans()*Ans();
else if( str[0]=='+' )
return Ans()+Ans();
else if( str[0]=='-' )
return Ans()-Ans();
else if( str[0]=='/' )
return Ans()/Ans();
else
return atof( str );
}
int main()
{
printf( "%lf\n", Ans() );
return 0;
}
全排列
#include <algorithm>
#include <cstring>
#include <cstdio>
using namespace std;
int used[1100];
int a[1100];
void A( int m )
{
if( m==5 )
{
for( int i=1;i<=4;i++ )
printf( "%d ", a[i] );
printf( "\n" );
return ;
}
for( int i=1;i<=4;i++ )
{
if( used[i]==0 )
{
used[i]=1;
a[m]=i;
A( m+1 );
used[i]=0;
}
}
}
int main()
{
int i, j;
int m=1;
A( m );
return 0;
}