//5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果
//A选手说:B第一,我第三。
//B选手说:我第二,E第四。
//C选手说:我第一,D第二。
//D选手说:C最后,我第三。
//E选手说:我第四,A第一。
//比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。
#include <stdio.h>int main()
{int a = 0, b = 0, c = 0, d = 0, e = 0;for (a = 1; a <= 5; a++){for (b = 1; b <= 5; b++){for (c = 1; c <= 5; c++){for (d = 1; d <= 5; d++){for (e = 1; e <= 5; e++){if (((b == 1) + (a == 3) == 1)&& ((b == 2) + (e == 4) == 1)&& ((c == 1) + (d == 2) == 1)&& ((c == 5) + (d == 3) == 1)&& ((e == 4) + (a == 1) == 1)){int num = 0;num |= (1 << (a - 1));num |= (1 << (b - 1));num |= (1 << (c - 1));num |= (1 << (d - 1));num |= (1 << (e - 1));while (num){if (num % 2 == 0){break;}num = num / 2;}if (num == 0){printf("a = %d  b = %d  c = %d  d = %d  e = %d\n",a,b,c,d,e);break;}}}}}}}return 0;
}

刚开始的时候出来的结果是这样的:

发现有很多重复且不现实的结果,听了老师的讲解后再进行了选择判断

  num|=(1<<(a-1));          num|=(1<<(b-1));num|=(1<<(c-1));num|=(1<<(d-1));num|=(1<<(e-1));     //将num某一位置1      while(num){if(num%2==0){break;}num=num/2;                     //去掉不连续的排名}if(num==0){printf("a=%d  b=%d  c=%d  d=%d  e=%d \n",a,b,c,d,e);                }

因为如果排名是连续的数字的话,它的二进制位从右往左是连续的1,那么它的十进制肯定是一个奇数,不断的num%2再除以2.最后的商一定是0;相反,如果排名不是连续的话那么它的某一位肯定是有0的,在num%2的时候就直接break了不再输出。

这样就可以去掉不连续的排名了。

转载于:https://blog.51cto.com/originalbyinn/1725662

编程成长日记——有意思的编程题(二)相关推荐

  1. Arduino成长日记2 - Arduino编程基础

    上一篇讲述了什么是Arduino以及各类Arduino开发板的参数,本篇开始介绍开发环境搭建以及一些编程基础. Arduino开发环境 开发环境即Arduino项目的编程环境 – Arduino ID ...

  2. 实体类 接口_Java 语言基础编程题 (二维数组, 五子棋游戏, 实体类和接口)

    原文:Java 语言基础编程题 (二维数组, 五子棋游戏, 实体类和接口, 视频讲解) 这里分享三道编程题, 下面是我个人的视频讲解 二维数组, 五子棋游戏, 实体类和接口_哔哩哔哩 (゜-゜)つロ ...

  3. 美团点评CodeM编程大赛-题二

    美团点评CodeM编程大赛-题二 题目描述 组委会正在为美团点评CodeM大赛的决赛设计新赛制. 比赛有 n 个人参加(其中 n 为2的幂),每个参赛者根据资格赛和预赛.复赛的成绩,会有不同的积分.比 ...

  4. 测试开发工程师成长日记018 - 测试面试必备题记录(持续更新)

    技术模块 一.在搜索引擎中输入汉字就可以解析到对应的域名,请问如何用LoadRunner进行测试? 建立测试计划,确定测试标准和测试范围 设计典型场景的测试用例,覆盖常用业务流程和不常用的业务流程等 ...

  5. scratch飞翔的小猫 电子学会图形化编程scratch等级考试一级真题和答案解析2022年3月

    目录 scratch飞翔的小猫 一.题目要求 1.准备工作 2.功能实现 二.案例分析 1.角色分析 2.背景分析 3.前期准备 三.实现流程 1.案例分析 2.流程图绘制 四.程序编写 五.考点分析 ...

  6. [Python]WEB编程--个人日记网站搭建(一)

    用Python+Tornado 编写一个个人日记网站(一) 讲道理,用惯了Flask感觉还是不熟悉Djongo,所以先来看一下Tornado(滑稽),记住这是一个最简单的最暴力的网页,毫无细节. 'F ...

  7. 历届蓝桥杯青少年Scratch编程选拔赛 STEMA评测比赛真题解析【持续更新 已更新至49题】

    历届蓝桥杯scratch选拔赛真题 第十届.十一届.十二届.十三届蓝桥杯选拔赛STEMA比赛真题解析 选拔赛真题49-购物程序 [蓝桥杯选拔赛真题48]Scratch购物程序 少儿编程scratch蓝 ...

  8. C语言学习之试编程从键盘输入2*3的二维数组,将该数组行列交换输出。

    试编程从键盘输入2*3的二维数组,将该数组行列交换输出. #include <stdio.h> void main(){int a[2][3];for(int i=0;i<2;i++ ...

  9. 1.5 编程基础之循环控制 45 金币 方法二(python3实现)

    OpenJudge - 45:金币 信息学奥赛一本通(C++版)在线评测系统 ​​​​​​[NOIP2015 普及组] 金币 - 洛谷 1.5编程基础之循环控制_45金币 https://blog.c ...

最新文章

  1. 回归插补法_用均值替换、 回归插补及多重插补进行插补
  2. Java 编程下的同步代码块
  3. [导入]编写程序实现n阶(n为奇数)魔方(C)
  4. [云炬创业基础笔记]第二章创业者测试9
  5. Hashtable源码分析
  6. apple watch3连android,Apple watch 可以连android手机吗?
  7. oracle 性能优化 常用,Oracle數據庫常用性能優化
  8. python实现pdf到excel的自动批量转换(附 完整代码)
  9. DragonBones(龙骨动画)在Unity端的使用
  10. Palantir Gotham初探
  11. 苹果和android充电线一根,苹果iPhone8充电接口大变:以后和安卓机用同一根数据线!...
  12. 微信公众号开发系列-12、微信前端开发利器:WeUI
  13. 数据可视化之excel和finebi报表实现对比
  14. 从USB数据采集板看技术造诣
  15. 如何在CTEX上对论文进行排版
  16. JAVA_JSP网吧自动计费收费管理系统
  17. 群消息已读回执(这个屌),究竟是推还是拉?
  18. 轻巧好听的小耳机,佩戴无感音质也不错,JEET Air2体验
  19. K-S Hamiltonian以及自洽计算形式
  20. JavaScript教程——从入门到精通-石川-专题视频课程

热门文章

  1. Linux: 使用bash命令ls按时间排序
  2. mysql范式与反范式_给女同事讲解MySQL数据库范式与反范式,她直夸我“技术好”...
  3. 参数化查询 但未提供该参数(将null插入数据库)
  4. python strptime_Python法律实务应用——制作自己的LPR计算器(上)
  5. python读中文文本_python读取中文txt文本
  6. easyexcel导入时读不到数据_EasyExcel简单使用--导入excel数据
  7. 第十篇学会编写python代码_Python之路,第十篇:Python入门与基础10
  8. rocketmq同步发送超时时间_RocketMQ系列(一)基本概念
  9. python中sorted函数逆序_Python中sorted函数的用法(转)
  10. python如何询问_学习Python问?