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

发布时间:2021-03-23 05:48:03

请用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
  #define N 16
  main()
  {
   int i;
   int j;
   char ch;
   int number=0;
   int a[5][N]={{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}};
   for(i=0;i
以上问题属网友观点,不代表本站立场,仅供参考!