走出迷阵-白与黑
【问题描述】
已知迷阵只有一个入口,师徒在整点出发,即最初节点全部为黑色。假设每个节点均会延伸出两条支路,节点为黑色时,向左前进;节点为白色时,向右前进,直到出口处结束。当节点处有人经过,节点颜色由黑变白或者由白变黑。迷阵共有n层,所有出口位置均处于第n层,所有节点从上到下从左到右的编号为1,2,4..... ..(2^D-1)若分五次出发,请给出每个人的出口位置的节点编号。(D表示迷阵的最大层数)
输入: 一个整数n,表示迷阵的层次数(1<=n<=10)。
输出: 5个整数,分别表示每个人的出口位置。
【样例输入】 4
【样例输出】 8 12 10 14 9
#include<iostream> using namespace std; int main(){ int n; // 洞穴的层次。 int node; // 起始节点的编号。 int tree[1025]={}; // 定义数组并初始化为0表示节点颜色都为黑(0:黑;1: 白)。 cin>>n; // 5个人出洞穴的情况模拟。 for(int i=1; i<=5; i++){ node=1; for(int j=1; j<n; j++){ if(tree[node]==0){ // 节点为黑,则向左走(遍历左子树),该节点变白。 tree[node]=1; node=2*node; // 左子树的节点编号等于父节点的2倍。 }else{ // 如果节点为白色,则向右走(遍历右子树),该节点变黑。 tree[node]=0; node=2*node+1; // 左子树的节点编号等于父节点的2倍加1。 } } // 输出叶子节点。 cout<<node<<" "; } return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现