当前位置 :
请用C语言根据下面的数学魔术原理编写一个小游戏。请根据下面的数学魔术原理编写一个小游戏。——数学魔术——情景:我有五张卡片,上面写着数字。一:1,3,5,7,9,11,13,15,17
1人问答
更新时间:2024-05-13 06:07:52
问题描述:

请用C语言根据下面的数学魔术原理编写一个小游戏。

请根据下面的数学魔术原理编写一个小游戏。

——数学魔术——

情景:我有五张卡片,上面写着数字。

一:1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31

二:2,3,6,7,10,11,14,15,18,19,22,23,26,27,30,31

三:4,5,6,7,12,13,14,15,20,21,22,23,28,29,30,31

四:8,9,10,11,12,13,14,15,24,25,26,27,28,29,30,31

五:16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31

你心中想一个0-31中的一个数字。告诉我这个数字在那几张卡片上有(不能多也不能少,有的全说上,没有的打死也不能说。)我便会知道你想的是什么数字。

比如观众想到21,查卡片得知“1、3、5”张卡片上都有这数字,那么此魔术师就可以计算出这个数字为:

2(1-1)+2(3-1)+2(5-1)=21

======================================

PS:括号里的是在2的上标的,表几次方的

========================================

原理:我们都可以知道0-31数字可以用5位2进制数;其实,那五张卡片就是各代表一位。每张卡片上的数字就是代表这个数字在表示成二进制时这一位为1。比如数字21表示成5位的二进制是10101,这5位二进制的第1位(最右边一位)和第3位、第5位都是“1”,那么就是在第1、3、5号卡片上都有这个数字。

提示:由于要让用户输入卡片号的话,数字所在卡片的个数不确定;你可改成让他检查“下列数字是否包含你所想的数字(Y/N):”,通过每张卡片的确认来进行计算。另,乘2也可以通过移位运算符实现(略)。

林波涛回答:
  这个程序我昨晚就搞定了,结果掉线上不成网没贴上来,等我早上起来就给你回答。搞定。#include#defineN16main(){inti;intj;charch;intnumber=0;inta[5][N]={{1,3,5,7,9,11,13,15,17,19,21,23,...
最新更新
PC端 | 移动端 | mip端
问答网(wenda2.com)汇总了汉语字典,新华字典,成语字典,组词,词语,在线查字典,中文字典,英汉字典,在线字典,康熙字典等等,是学生查询学习资料的好帮手,是老师教学的好助手。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。

邮箱:联系方式:

Copyright©2009-2021 问答网 wenda2.com 版权所有 闽ICP备2022000227号-1