2021-8-25【PTA】【九连环问题】

九连环是一种流传于山西省的传统民间的智力玩具,由九个圆环相连成串,以解开为胜。

九连环的九个环,一环扣一环地套在钗上。除了第 1 号环可以随时装上或卸下以外,其它环装上或卸下的条件是:在它的前面仅有紧靠它那一个环在钗上。即:当第 1 ~ i−2 号环都不在钗上,第 i−1 号环在钗上,这时可以装上或卸下第 i 号环。

输入格式
环数 操作(U表示装上, D表示卸下)

输出格式
装上或卸下九连环的操作步骤
每行显示一步操作,具体格式为:
环号: U或D (U表示装上,D表示卸下)

#include<stdio.h>
//1~i-2不在杆上,i-1在杆上,i可装上或取下 
void down(int n);
void on(int n){
   
	if(n>1) on(n-1);		//i-1装在杆上 
	if(n>2) down(n-2);		//i-2从杆上卸下 
	printf("%d: U",n);		//输出装上 
	if(n>2) on(n-2);		//i-2装在杆上 
}

void down(int n){
   
	if(n>2) down(n-2);		//i-2从杆上卸下 
	printf("%d: D",n);		//输出卸下 
	if(n>2) on(n-2);		//i-2装上杆上 
	if(n>1) down(n-1);		//i-1从杆上卸下 
}

int main(){
   
	char a[2];
    scanf("%c %c",&a[0],&a[1]);
	//cin>>a[0]>>a[1];
	int n=a[0]-'0';
	if(a[1]=='U') on(n);
	else down(n);
	return 0;
}
全部评论

相关推荐

05-12 17:00
门头沟学院 Java
king122:你的项目描述至少要分点呀,要实习的话,你的描述可以使用什么技术,实现了什么难点,达成了哪些数字指标,这个数字指标尽量是真实的,这样面试应该会多很多,就这样自己包装一下,包装不好可以找我,我有几个大厂最近做过的实习项目也可以包装一下
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务