转骰子

2023-11-09

转骰子

题目描述:
骰子是一个立方体,每个面一个数字,初始为左 1,右 2,前 3(观察者方向),后 4,上 5,下 6,
用 123456 表示这个状态,放置到平面上,可以向左翻转(用 L表示向左翻转 1 次),可以向右翻转(用 R 表示
向右翻转 1 次),可以向前翻转(用 F 表示向前翻转 1 次),可以向后翻转(用 B 表示向后翻转 1 次),可以
逆时针旋转(用 A表示逆时针旋转 90 度),可以顺时针旋转(用 C 表示顺时针旋转 90 度),现从 123456 这个
初始状态开始,根据输入的动作序列,计算得到最终的状态。
骰子的初始状态和初始状态转动后的状态如图所示
在这里插入图片描述

输入描述:
输入一行,为只包含 LRFBAC 的字母序列,最大长度 50,字母可重复
输出描述:
输出最终状态
示例 1:
输入
LR
输出
123456

#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
int main(){
	string str="";
	while(getline(cin,str)){
		string str_num="123456";
		vector<char> svec;
		svec.clear();
		for(size_t i=0;i<str_num.size();++i){
			svec.push_back(str_num[i]);
		}
		for(size_t i=0;i<str.size();++i){
			if(str[i]=='L'){
				swap(svec[0], svec[5]);
				swap(svec[0], svec[4]);
				swap(svec[0], svec[1]);
			}
			else if(str[i]=='R'){
				swap(svec[0], svec[1]);
				swap(svec[0], svec[4]);
				swap(svec[0], svec[5]);
			}
			else if (str[i] == 'F') {
				swap(svec[4], svec[2]);
				swap(svec[4], svec[5]);
				swap(svec[4], svec[3]);
			}
			else if (str[i] == 'B') {
				swap(svec[4], svec[3]);
				swap(svec[4], svec[5]);
				swap(svec[4], svec[2]);
			}
			else if (str[i] == 'A') {
				swap(svec[0], svec[2]);
				swap(svec[0], svec[1]);
				swap(svec[0], svec[3]);
			}
			else if (str[i] == 'C') {
				swap(svec[0], svec[3]);
				swap(svec[0], svec[1]);
				swap(svec[0], svec[2]);
			}
		}
		for(size_t i =0;i<svec.size();++i){
			cout<<svec[i];
		}
		cout<<endl;
	}
	return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

转骰子 的相关文章

随机推荐

  • VIM-Plug安装插件时,频繁更新失败,或报端口443被拒绝

    安装vim插件 tabular时候一直报错 尝试了网上大部分办法 全部失败 方法 直接按照报错的内容自己手动操作 错误如下图 第一步 去github检查插件的网址有没有问题 直接复制网址浏览器搜索 若长时间加载不上 使用科学上网 第二步 若
  • 重写equals方法

    重写equals方法 相信在每个人都有过重写过java的equals的方法的经历 这篇博文就从以下几个方面说明重写equals方法的原由 与君共进步 一 为什么要重写equals方法 首先我们了解equals方法的作用是什么 java的官方
  • [论文笔记] GENDA: A Graph Embedded Network Based Detection Approach on encryption algorithm

    GENDA A Graph Embedded Network Based Detection Approach on encryption algorithm of binary program JISA 2022 Xiao Li Scho
  • 关闭apache-httpClient日志遇到的坑

    log4j logger org OFF log4j logger httpclient OFF 看org apache commons httpclient Wire源码才知道他没有遵循类名 httpclient wire public
  • requests、aiohttp、httpx性能大比拼

    在Python中 有许多用于发送HTTP请求的库 其中最受欢迎的是requests aiohttp和httpx 这三个库的性能和功能各不相同 因此在选择使用哪个库时 需要考虑到自己的需求和应用场景 首先 让我们来了解一下这三个库的基本介绍
  • 科技,让二次元老婆动起来

    想让你的二次元老婆动起来吗 前不久 Meta 也就是Facebook 发布了一款有趣的AI工具Animated Drawings 它可以让静态的儿童画动起来 有些懂行的朋友一看就说 哎呀这不就是关键点检测再加动态化嘛 道理是这个道理 但是儿
  • MYSQl:关于AUTO_INCREMENT

    auto increment是用于主键自动增长的 从1开始增长 当你把第一条记录删除时 再插入第二条数据时 主键值是2 不是1 问题来源 拷贝了公司项目的regions表 发现建表的sql语句如下 CREATE TABLE es regio
  • 两数求最大值 和 交换两个数字

    两数求最大值 include
  • 将图片进行base64 编码后的数据进行读取,以io流的方式传给前台并显示出来并且不断刷新图片

    前提摘要 最近做一个项目 是关于slam的 给slam发送构建地图的命令 slam不断返回json串 而地图的图片在json串中已经经过base64编码了 我这边需要将base64编码解析并以流的方式传给前台显示出来 但是消息是不断要接收的
  • 支付结算周期:D0 D1 T0 T1的区别

    D0 自然日当天 D1 自然日第二天 T0 工作日当天 T1 工作日第二天 D0和T0的区别 比如说 星期六做的交易 D0因为是自然日当天 所以周六即可到账 T0因为是工作日当天 所以下周一可到账
  • 在Windows10下配置深度学习环境(tensorflow-gpu + CUDA & CUDNN),十分详细,推荐小白食用

    在Windows10下配置深度学习环境 tensorflow gpu CUDA CUDNN 本文的基础建立在DUT汽院515教研室的师兄的教程之上 由本人总结更新 希望能帮到更多人 十分感谢师兄们的付出 CUDA的配置 请参考本人的另一篇文
  • 基于LSTM的情感识别在鹅漫评论分析中的实践与应用

    深度学习 深度神经网络 作为机器学习的一个重要分支 持续推动了很多领域的研究和应用取得新的进展 其中包括文本处理领域的情感分类问题 由于可以对文本进行更有效的编码及表达 基于深度学习的情感分类对比传统的浅层机器学习和统计学方法 可以取得更高
  • C++ public、protected 、 private使用详解

    1 类私有成员变量的访问 必须调用类成员函数来进行访问 对于protected成员 继承他的类可以直接在成员函数中调用 而对于私有成员 继承他的类要使用他们的值必须使用基类的成员函数 2 protected成员 基类对象不能调用自身prot
  • ajax中data参数json对象与json字符串的使用区别

    在jquery的ajax里面有个data参数 是客户的传给服务端的数据 我们先看第一种常见写法 前端代码 var username phone email num val var pwd password val ajax url logi
  • GDB 调试工具的使用和交叉编译安装

    作用 1 可以让我们的代码单步运行 并且可以打印出运行时各种变量的值 2 还可以调试各种 core 核心 文件 在启动 gdb 调试程序的时候 我们需要使用到 gcc g 命令指定 g 参数生成可执行调试程序 例如 g g main cpp
  • Proxy代理isExtensible方法

    介绍 isExtensible方法拦截Onject isExtensible操作 demo1 var p new Proxy isExtensible function target console log called return tr
  • redis 事务实现原理

    一 简介 Redis事务通常会使用MULTI EXEC WATCH等命令来完成 redis实现事务实现的机制与常见的关系型数据库有很大的却别 比如redis的事务不支持回滚 事务执行时会阻塞其它客户端的请求执行 二 事务实现细节 redis
  • 【电动车】基于多目标优化遗传算法NSGAII的峰谷分时电价引导下的电动汽车充电负荷优化研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 文献来源 4 Matlab代码实现 1 概述 文献来源 摘要 在研究电动汽车用户充电需求
  • Ajax的介绍及应用,XMLHttpRequest对象

    AJAX介绍 AJAX全称 Asynchronous JavaScript and XML 异步的 JavaScript 和 XML JS是同步执行的 从上往下依次执行 如果遇到请求将会等待服务器的响应 AJAX是用来 异步 和服务器交互的
  • 转骰子

    转骰子 题目描述 骰子是一个立方体 每个面一个数字 初始为左 1 右 2 前 3 观察者方向 后 4 上 5 下 6 用 123456 表示这个状态 放置到平面上 可以向左翻转 用 L表示向左翻转 1 次 可以向右翻转 用 R 表示 向右翻