当前位置: 首页 > news >正文 网站常用图标素材app开发定制软件公司 news 2025/10/31 18:55:08 网站常用图标素材,app开发定制软件公司,适合夜间看的直播app大全,黔东南企业网站建设博客主页#xff1a; [小ᶻZ࿆] 本文专栏: 蓝桥杯C/C 文章目录 #x1f4af;题目#x1f4af;问题分析解法一#xff1a;减法法解法二#xff1a;位运算解法解法三#xff1a;逻辑非解法解法四#xff1a;条件运算符解法解法五#xff1a;数组映射法不同解法的比较… 博客主页 [小ᶻZ࿆] 本文专栏: 蓝桥杯C/C 文章目录 题目问题分析解法一减法法解法二位运算解法解法三逻辑非解法解法四条件运算符解法解法五数组映射法不同解法的比较 小结 题目 在蓝桥镇妮妮发明了一个新的游戏——翻转游戏。游戏中有一个开关可以处于两种状态开用 1 表示和关用 0 表示。妮妮发现无论开关当前处于何种状态他都可以通过一次操作使得开关的状态翻转。现在妮妮告诉你开关当前的状态 x他想知道如果他做一次操作开关的状态会变成什么。你能帮助他解答这个问题吗 输入格式 输入仅一行包含一个整数 x (0 ≤ x ≤ 1)表示开关当前的状态。 输出格式 输出一行表示如果妮妮做一次操作后开关的状态。 样例输入 0样例输出 1在这个样例中开关当前的状态是关0所以妮妮做一次操作后开关的状态会变为开1。 运行限制 语言最大运行时间最大运行内存C1s128MC1s128MJava2s128MPython33s128M 问题分析 这个问题本质上是一个开关翻转问题开关的状态只有两种0 和 1。因此我们可以很方便地通过数学运算、位运算、逻辑运算等多种方式实现翻转操作。接下来我们将以 C 为例详细讲解每种方法的实现并分析其思路和适用性。 解法一减法法 这是最直观的一种解法即利用数学运算来实现状态翻转。我们知道开关有两种状态0 和 1。那么无论 x 的初始状态是 0 还是 1都可以通过 1 - x 的方式得到翻转后的状态。 代码实现 #include iostream using namespace std;int main() {std::ios::sync_with_stdio(false);int x;cin x;cout 1 - x endl;return 0; }思路分析 对于当前状态 x 如果 x 为 0那么 1 - x 的结果为 1。如果 x 为 1那么 1 - x 的结果为 0。 通过简单的减法操作我们可以实现状态的翻转。这种解法简单明了代码也非常简洁易于理解。其计算量为常数级别时间复杂度为 O ( 1 ) O(1) O(1)适合大多数场景使用。 解法二位运算解法 利用位运算的异或操作^实现状态翻转也是一种很高效的方法。在二进制逻辑中异或操作可以用来做翻转。 0 ^ 1 11 ^ 1 0 也就是说当前状态与 1 做异或运算就可以实现翻转操作。 代码实现 #include iostream using namespace std;int main() {std::ios::sync_with_stdio(false);int x;cin x;cout (x ^ 1) endl;return 0; }思路分析 在 C 中^ 是按位异或运算符。当两个位不同的时候结果为 1相同则为 0。因此 x ^ 1 的效果是 当 x 为 0 时0 ^ 1 得到 1。当 x 为 1 时1 ^ 1 得到 0。 这种解法的优点在于它利用了位运算的高效性。位运算的执行速度通常比数学运算更快因此在需要极高性能的场合位运算是不错的选择。 解法三逻辑非解法 我们还可以通过逻辑非运算符 ! 来实现状态翻转。在 C 中逻辑非运算符 ! 可以将布尔值的真假互换。 !0 true转为整数就是 1!1 false转为整数就是 0 代码实现 #include iostream using namespace std;int main() {std::ios::sync_with_stdio(false);int x;cin x;cout !x endl;return 0; }思路分析 逻辑非运算符可以将 0 变为 1将 1 变为 0。虽然逻辑非运算符通常用于布尔逻辑判断但在这种只有 0 和 1 两个状态的问题中也可以巧妙地应用。利用逻辑非运算符的结果自动转换为整数可以实现状态翻转。 解法四条件运算符解法 条件运算符? :是 C 中的一种三目运算符可以根据条件的真假执行不同的操作。在这个问题中我们可以根据 x 的值选择输出 1 或 0。 代码实现 #include iostream using namespace std;int main() {std::ios::sync_with_stdio(false);int x;cin x;cout (x 0 ? 1 : 0) endl;return 0; }思路分析 该解法利用了条件运算符的特点 当 x 0 时输出 1。当 x ! 0 时输出 0。 这种方法的好处在于可读性很强逻辑清晰明了适合用来增强代码的可维护性。 解法五数组映射法 我们可以定义一个数组将开关状态映射到它翻转后的状态。利用数组的索引可以很方便地实现状态翻转。 代码实现 #include iostream using namespace std;int main() {std::ios::sync_with_stdio(false);int x;cin x;int flip[2] {1, 0}; // 定义翻转表cout flip[x] endl;return 0; }思路分析 在这个解法中我们定义了一个数组 flip其中 flip[0] 为 1flip[1] 为 0 输入的状态 x只能是 0 或 1可以直接作为数组的索引通过查表的方式得到翻转后的状态。这种解法的优点在于扩展性较好。如果将来状态种类增多只需要扩展数组即可代码的改动最小。 不同解法的比较 减法法 (1 - x) 优点简单、直观易于实现。缺点不够灵活对于状态数较多的场景不适用。 位运算解法 (x ^ 1) 优点利用位运算的高效性性能优异。缺点代码可能对某些不熟悉位运算的程序员不够直观。 逻辑非解法 (!x) 优点逻辑运算的方式实现状态翻转简单易懂。缺点逻辑非运算符通常用于布尔类型可能会降低代码的可读性。 条件运算符解法 (x 0 ? 1 : 0) 优点逻辑清晰代码可读性强。缺点代码稍显冗长相较于其他方法不够简洁。 数组映射法 (flip[x]) 优点扩展性好可以方便地增加状态种类。缺点对当前只有两种状态的情形而言显得有些多余。 小结 如果代码简洁性和易读性是主要考虑因素那么减法法 (1 - x) 是最优选择。如果需要追求极致的性能或者对位运算熟悉且希望代码执行效率更高位运算解法 (x ^ 1) 是不错的选择。如果问题需要在逻辑判断的基础上扩展为多状态翻转数组映射法可以提高代码的扩展性和可维护性。. 文章转载自: http://www.morning.bnlsd.cn.gov.cn.bnlsd.cn http://www.morning.rngyq.cn.gov.cn.rngyq.cn http://www.morning.mmxnb.cn.gov.cn.mmxnb.cn http://www.morning.sgjw.cn.gov.cn.sgjw.cn http://www.morning.jybj.cn.gov.cn.jybj.cn http://www.morning.rblqk.cn.gov.cn.rblqk.cn http://www.morning.fpxms.cn.gov.cn.fpxms.cn http://www.morning.hxftm.cn.gov.cn.hxftm.cn http://www.morning.wpjst.cn.gov.cn.wpjst.cn http://www.morning.fhcwm.cn.gov.cn.fhcwm.cn http://www.morning.kryn.cn.gov.cn.kryn.cn http://www.morning.hsrpc.cn.gov.cn.hsrpc.cn http://www.morning.jrgxx.cn.gov.cn.jrgxx.cn http://www.morning.pndhh.cn.gov.cn.pndhh.cn http://www.morning.nnttr.cn.gov.cn.nnttr.cn http://www.morning.rswtz.cn.gov.cn.rswtz.cn http://www.morning.vjwkb.cn.gov.cn.vjwkb.cn http://www.morning.twhgn.cn.gov.cn.twhgn.cn http://www.morning.lnnc.cn.gov.cn.lnnc.cn http://www.morning.kqbwr.cn.gov.cn.kqbwr.cn http://www.morning.fyglr.cn.gov.cn.fyglr.cn http://www.morning.qxlhj.cn.gov.cn.qxlhj.cn http://www.morning.rbcw.cn.gov.cn.rbcw.cn http://www.morning.mqldj.cn.gov.cn.mqldj.cn http://www.morning.dzqyn.cn.gov.cn.dzqyn.cn http://www.morning.txzmy.cn.gov.cn.txzmy.cn http://www.morning.rrcrs.cn.gov.cn.rrcrs.cn http://www.morning.rlkgc.cn.gov.cn.rlkgc.cn http://www.morning.dnwlb.cn.gov.cn.dnwlb.cn http://www.morning.feites.com.gov.cn.feites.com http://www.morning.nwwzc.cn.gov.cn.nwwzc.cn http://www.morning.pyncm.cn.gov.cn.pyncm.cn http://www.morning.zzjpy.cn.gov.cn.zzjpy.cn http://www.morning.tlbdy.cn.gov.cn.tlbdy.cn http://www.morning.qrlsy.cn.gov.cn.qrlsy.cn http://www.morning.xnhnl.cn.gov.cn.xnhnl.cn http://www.morning.qptbn.cn.gov.cn.qptbn.cn http://www.morning.mkxxk.cn.gov.cn.mkxxk.cn http://www.morning.yrjkz.cn.gov.cn.yrjkz.cn http://www.morning.jlxqx.cn.gov.cn.jlxqx.cn http://www.morning.mprpx.cn.gov.cn.mprpx.cn http://www.morning.rlnm.cn.gov.cn.rlnm.cn http://www.morning.nrcbx.cn.gov.cn.nrcbx.cn http://www.morning.c7629.cn.gov.cn.c7629.cn http://www.morning.pjrql.cn.gov.cn.pjrql.cn http://www.morning.dgknl.cn.gov.cn.dgknl.cn http://www.morning.fdmtr.cn.gov.cn.fdmtr.cn http://www.morning.ymwny.cn.gov.cn.ymwny.cn http://www.morning.cyfsl.cn.gov.cn.cyfsl.cn http://www.morning.routalr.cn.gov.cn.routalr.cn http://www.morning.nwjd.cn.gov.cn.nwjd.cn http://www.morning.ghxzd.cn.gov.cn.ghxzd.cn http://www.morning.nxstj.cn.gov.cn.nxstj.cn http://www.morning.slfkt.cn.gov.cn.slfkt.cn http://www.morning.xhftj.cn.gov.cn.xhftj.cn http://www.morning.rdzlh.cn.gov.cn.rdzlh.cn http://www.morning.ckdgj.cn.gov.cn.ckdgj.cn http://www.morning.rmlz.cn.gov.cn.rmlz.cn http://www.morning.tbjtm.cn.gov.cn.tbjtm.cn http://www.morning.cfocyfa.cn.gov.cn.cfocyfa.cn http://www.morning.tbstj.cn.gov.cn.tbstj.cn http://www.morning.rwyd.cn.gov.cn.rwyd.cn http://www.morning.gdgylp.com.gov.cn.gdgylp.com http://www.morning.tgts.cn.gov.cn.tgts.cn http://www.morning.kxqwg.cn.gov.cn.kxqwg.cn http://www.morning.qqxmj.cn.gov.cn.qqxmj.cn http://www.morning.nkcfh.cn.gov.cn.nkcfh.cn http://www.morning.rdnpg.cn.gov.cn.rdnpg.cn http://www.morning.krdxz.cn.gov.cn.krdxz.cn http://www.morning.mlgsc.com.gov.cn.mlgsc.com http://www.morning.mkbc.cn.gov.cn.mkbc.cn http://www.morning.lsyk.cn.gov.cn.lsyk.cn http://www.morning.jrsgs.cn.gov.cn.jrsgs.cn http://www.morning.gbsfs.com.gov.cn.gbsfs.com http://www.morning.nynpf.cn.gov.cn.nynpf.cn http://www.morning.kxxld.cn.gov.cn.kxxld.cn http://www.morning.huihuangwh.cn.gov.cn.huihuangwh.cn http://www.morning.xrqkm.cn.gov.cn.xrqkm.cn http://www.morning.mjbkp.cn.gov.cn.mjbkp.cn http://www.morning.tkrdg.cn.gov.cn.tkrdg.cn 查看全文 http://www.tj-hxxt.cn/news/265941.html 相关文章: 网站降权如何恢复做的网站图片模糊 网站建设公司市场策划方案模板建站排版跟没缓存好似的 机器人编程培训贵州整站优化seo平台 做画册的网站西宁网站建设优化案例 网站代理 正规备案网站主页面布局怎么做 网站建设总结 优帮云如何开一个自己的网站 网络网站制作过程注册网站不需要手机验证的 做外贸网站包括哪些连云港市建设银行网站 什么网站做一手项目好珠海做公司网站 网站推广软件哪个最实惠中国建设银行深圳招聘信息网站 网站建设流程心得网页app制作入门教程 朝阳公园网站建设石英手表网站 网站开发实施计划与安排建筑模板是怎么做成的 wordpress建站发文教程目前我们的网站正在建设中 怎么给公司注册网站设计师网站十大网站 农业网站怎么做wordpress只有三个主题 莆田网站开发网站建设直通车关键词设置 合肥网站建设方案策划WordPress调用npr电台 关于制作网站的方案网络营销外包公司哪家最好 法国新增确诊病例如何给自己的公司网站做优化 wordpress导航栏下拉菜单公司网站优化推广 郑州网站建设公司电话海报设计说明 百度信息流推广是什么意思企业网站优化官网 槐荫区网站建设大连专业网站建设 郑州百度网站推广塘沽网站制作公司 如何做网站公证百度热词搜索指数 海南那个网站可以做车年检哈尔滨建站模板 天津 建设执业资格注册中心网站制作小程序的方法如何自己制作小程序 关于网站开发的网站移动知识库管理系统 哪里建网站最好商城网站框架