4147:汉诺塔问题(Hanoi)(bailian)
#include<cstdio>
#include<iostream>//cin cout
#include<string.h>//<string>ÊDz»¶ÔµÄ£¬Ó¦¸Ã¼Ó.h
#include<cstdlib>
#include<cmath>
#include<vector>//¶þάÊý×é
#include<algorithm>//
#include<set>//¼¯ºÏ
#include<map>
#include<stack>
#include<queue>
#include<iomanip>
using namespace std;
const int maxn=1010;
const int inf=0x3fffffff;
void Hanoi(int n,char a,char b,char c,int num){
if(n==1){
printf("%d:%c->%c\n",num,a,c);
return;
}
else{
Hanoi(n-1,a,c,b,num);
printf("%d:%c->%c\n",n,a,c);
Hanoi(n-1,b,a,c,num);
return;
}
}
int main() {
int n;
char a,b,c;
cin>>n>>a>>b>>c;
Hanoi(n,a,b,c,1);
system("pause");
return 0;
}
2.2754:八皇后
#include<cstdio>
#include<iostream>//cin cout
#include<string.h>//<string>ÊDz»¶ÔµÄ£¬Ó¦¸Ã¼Ó.h
#include<cstdlib>
#include<cmath>
#include<vector>//¶þάÊý×é
#include<algorithm>//
#include<set>//¼¯ºÏ
#include<map>
#include<stack>
#include<queue>
#include<iomanip>
using namespace std;
const int maxn=1010;
const int inf=0x3fffffff;
int num,input;
int queue[10],result[10];
void setQueue(int n){
if(n==8){
num++;
if(num==input){
for(int i=0;i<8;i++){
printf("%d",result[i]+1);
}
printf("\n");
}
return;
}
for(int i=0;i<8;i++){
int j;
for(j=0;j<n;j++){
if(result[j]==i||abs(result[j]-i)==abs(n-j)){
break;
}
}
if(j==n){
result[n]=i;
setQueue(n+1);
}
}
}
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
num=0;
cin>>input;
setQueue(0);
}
system("pause");
return 0;
}
3.2694:逆波兰表达式
#include<cstdio>
#include<iostream>//cin cout
#include<string.h>//<string>ÊDz»¶ÔµÄ£¬Ó¦¸Ã¼Ó.h
#include<cstdlib>
#include<cmath>
#include<vector>//¶þάÊý×é
#include<algorithm>//
#include<set>//¼¯ºÏ
#include<map>
#include<stack>
#include<queue>
#include<iomanip>
using namespace std;
const int maxn=1010;
const int inf=0x3fffffff;
double exp(){
char c[100];
cin>>c;
switch(c[0]){
case'+':return exp()+exp();
case'-':return exp()-exp();
case'*':return exp()*exp();
case'/':return exp()/exp();
default:return atof(c);
break;
}
}
int main(){
printf("%lf",exp());
system("pause");
return 0;
}