美文网首页
九连环C语言程序

九连环C语言程序

作者: redexpress | 来源:发表于2018-03-15 23:31 被阅读21次

最近在玩九连环游戏,就写个九连环程序。


古董九连环

九连环蕴含以下知识:

  • 递归
  • 格雷码
  • 二进制
#include <stdio.h>

typedef enum {
  DOWN,
  UP
} direction;

#define DISP(d) (d == UP ? "Up  " : "Down")

char charDirection(direction d) {
  return d == UP ? '1' : '0';
}

direction reverse(direction d) {
  return d == DOWN ? UP : DOWN;
}

void upDownOne(char *p, int n, direction d) {
  *(p + n) = charDirection(d);
  printf("%s %d  %s \n", DISP(d), n, p);
}

void upDownMultiple(char *p, int n, direction d) {
  if (n == 1) {
    *(p + 1) = charDirection(d);
    printf("%s 1  %s \n", DISP(d), p);
    return;
  } else if (n == 2) {
    *(p + 1) = charDirection(d);
    *(p + 2) = charDirection(d);
    printf("%s 12 %s  \n", DISP(d), p);
    return;
  }
  upDownMultiple(p, n - 2, d);
  upDownOne(p, n, d);
  direction u = reverse(d);
  upDownMultiple(p, n - 2, u);
  upDownMultiple(p, n - 1, d);
}

int main() {
  char ring[11] = " 111111111";
  upDownMultiple(ring, 9, DOWN);
  return 0;
}
/* output
  Down 1   011111111
  Down 3   010111111
  Up   1   110111111
   ...
  Up   1   110000000
  Down 12  000000000 */

相关文章

  • 九连环C语言程序

    最近在玩九连环游戏,就写个九连环程序。 九连环蕴含以下知识: 递归 格雷码 二进制

  • 编程字典-C语言基础教程源码

    C源码示例C源码示例C语言文件扩展名第一个C程序C语言度量单位转换C语言函数 调试C程序C语言语义错误C实例程序C...

  • C语言的内存布局

    C语言编程程序的内存如何布局 C语言程序连接过程中的特性和常见错误 C语言程序的运行方式 一:C语言程序的存储区域...

  • 计算机二级考试

    C语言程序设计、VB语言程序设计、Java语言程序设计、Access数据库程序设计、C++语言程序设计、MySQL...

  • 无标题文章

    今天讲了c语言程序格式,基本数据类型,c语言程序结构。 c语言程序格式一般为 #include int main(...

  • 关于在Linux系统下编辑C语言程序

    本周我们学习了在Linux系统下编辑C语言程序。在编写C语言程序的初始步骤与编辑脚本程序相类似,只不过C语言程序时...

  • 【C语言C++编程学习笔记】基础语法,第一个简单的实例编程入门教

    C语言/C++编程学习:一个简单的实例 让我们来看一个简单的C语言程序。从下面的程序可以看出编写C语言程序的一些...

  • 03-第一个Go语言程序-指趣学院

    Go语言程序组成 和C语言程序一样,Go语言程序也是由众多函数组成的 和C语言程序一样,程序运行时系统会自动调用名...

  • 《JNI开发——Java与C之间的桥梁 二》

    用java 语言编写的程序能否调用C语言编写的程序类库呢? 同样 C(程序)能否调用 java语言编写的api呢?...

  • 2018-08-29日常C笔记

    C语言初学笔记 C语言程序是由函数组成的C语言程序启动时,系统就会自动调用名字叫main的函数C语言规定了函数定义...

网友评论

      本文标题:九连环C语言程序

      本文链接:https://www.haomeiwen.com/subject/guikqftx.html