编程成长日记——有意思的编程题(二)
//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
编程成长日记——有意思的编程题(二)相关推荐
- Arduino成长日记2 - Arduino编程基础
上一篇讲述了什么是Arduino以及各类Arduino开发板的参数,本篇开始介绍开发环境搭建以及一些编程基础. Arduino开发环境 开发环境即Arduino项目的编程环境 – Arduino ID ...
- 实体类 接口_Java 语言基础编程题 (二维数组, 五子棋游戏, 实体类和接口)
原文:Java 语言基础编程题 (二维数组, 五子棋游戏, 实体类和接口, 视频讲解) 这里分享三道编程题, 下面是我个人的视频讲解 二维数组, 五子棋游戏, 实体类和接口_哔哩哔哩 (゜-゜)つロ ...
- 美团点评CodeM编程大赛-题二
美团点评CodeM编程大赛-题二 题目描述 组委会正在为美团点评CodeM大赛的决赛设计新赛制. 比赛有 n 个人参加(其中 n 为2的幂),每个参赛者根据资格赛和预赛.复赛的成绩,会有不同的积分.比 ...
- 测试开发工程师成长日记018 - 测试面试必备题记录(持续更新)
技术模块 一.在搜索引擎中输入汉字就可以解析到对应的域名,请问如何用LoadRunner进行测试? 建立测试计划,确定测试标准和测试范围 设计典型场景的测试用例,覆盖常用业务流程和不常用的业务流程等 ...
- scratch飞翔的小猫 电子学会图形化编程scratch等级考试一级真题和答案解析2022年3月
目录 scratch飞翔的小猫 一.题目要求 1.准备工作 2.功能实现 二.案例分析 1.角色分析 2.背景分析 3.前期准备 三.实现流程 1.案例分析 2.流程图绘制 四.程序编写 五.考点分析 ...
- [Python]WEB编程--个人日记网站搭建(一)
用Python+Tornado 编写一个个人日记网站(一) 讲道理,用惯了Flask感觉还是不熟悉Djongo,所以先来看一下Tornado(滑稽),记住这是一个最简单的最暴力的网页,毫无细节. 'F ...
- 历届蓝桥杯青少年Scratch编程选拔赛 STEMA评测比赛真题解析【持续更新 已更新至49题】
历届蓝桥杯scratch选拔赛真题 第十届.十一届.十二届.十三届蓝桥杯选拔赛STEMA比赛真题解析 选拔赛真题49-购物程序 [蓝桥杯选拔赛真题48]Scratch购物程序 少儿编程scratch蓝 ...
- C语言学习之试编程从键盘输入2*3的二维数组,将该数组行列交换输出。
试编程从键盘输入2*3的二维数组,将该数组行列交换输出. #include <stdio.h> void main(){int a[2][3];for(int i=0;i<2;i++ ...
- 1.5 编程基础之循环控制 45 金币 方法二(python3实现)
OpenJudge - 45:金币 信息学奥赛一本通(C++版)在线评测系统 [NOIP2015 普及组] 金币 - 洛谷 1.5编程基础之循环控制_45金币 https://blog.c ...
最新文章
- 回归插补法_用均值替换、 回归插补及多重插补进行插补
- Java 编程下的同步代码块
- [导入]编写程序实现n阶(n为奇数)魔方(C)
- [云炬创业基础笔记]第二章创业者测试9
- Hashtable源码分析
- apple watch3连android,Apple watch 可以连android手机吗?
- oracle 性能优化 常用,Oracle數據庫常用性能優化
- python实现pdf到excel的自动批量转换(附 完整代码)
- DragonBones(龙骨动画)在Unity端的使用
- Palantir Gotham初探
- 苹果和android充电线一根,苹果iPhone8充电接口大变:以后和安卓机用同一根数据线!...
- 微信公众号开发系列-12、微信前端开发利器:WeUI
- 数据可视化之excel和finebi报表实现对比
- 从USB数据采集板看技术造诣
- 如何在CTEX上对论文进行排版
- JAVA_JSP网吧自动计费收费管理系统
- 群消息已读回执(这个屌),究竟是推还是拉?
- 轻巧好听的小耳机,佩戴无感音质也不错,JEET Air2体验
- K-S Hamiltonian以及自洽计算形式
- JavaScript教程——从入门到精通-石川-专题视频课程
热门文章
- Linux: 使用bash命令ls按时间排序
- mysql范式与反范式_给女同事讲解MySQL数据库范式与反范式,她直夸我“技术好”...
- 参数化查询 但未提供该参数(将null插入数据库)
- python strptime_Python法律实务应用——制作自己的LPR计算器(上)
- python读中文文本_python读取中文txt文本
- easyexcel导入时读不到数据_EasyExcel简单使用--导入excel数据
- 第十篇学会编写python代码_Python之路,第十篇:Python入门与基础10
- rocketmq同步发送超时时间_RocketMQ系列(一)基本概念
- python中sorted函数逆序_Python中sorted函数的用法(转)
- python如何询问_学习Python问?