论文网
English Papers
万事OK网
发表论文
 
 首页 > IT文章 > 程序设计 >
C脚本递归算法-计算八皇后问题

[科技论文网] http://www.scipapers.com    2007-12-01  

     C脚本递归算法-计算八皇后问题

    C脚本和虚拟机是作者在EcHmi组态软件中应用的技术,本文用递归算法计算八皇后问题来展示C脚本和虚拟机的语法和功能。

    ///////////////////////////////////////////////////////////////////
    //   C脚本编译编译器测试程序 exp3.sc
    //
    //   该例子使用递归算法计算八皇后问题,该例子显示信息比较长,
    //   在Win2000下会超出显示允许长度,可以使用以下命令重定向到
    //   一个文本文件中再查看:
    //       scvm exp3.so >> exp3.txt
    //
    //   作者:何清
    //   日期:2003-07-04
    //
    ///////////////////////////////////////////////////////////////////

    int result = 1;
    int chess[8];

    // 根据前面几行的子,检查这一行所放的子是否合法
    int check( int n )
    {
     int i;
        for (i = 1; i <= n - 1; i++)
        {
         if (chess[n] == chess[i] + (n - i) ||
          chess[n] == chess[i] - (n - i) ||
          chess[n] == chess[i] )
          return 0;
        }
        return 1;
    }

    // 递归函数:放子
    void putchess( int n )
    {
        int i;
        if (n <= 8)
        {
         for (i = 1; i <= 8; i++)  // 将第n行从第一格(i)开始往下放
         {
          chess[n] = i;
          if (check(n) == 1) // 若可放,则检查是否放满
          {
           if (n == 8)
              show_chess(); // 若已放满到8行时,则表示找出一种解,打印出来
           else
             putchess(n + 1); // 若没放满则放下一行 putchess(n+1)
          }
        }
       }
    }

    // 函数:打印结果
    void show_chess(void)
    {
     int i;
        printf("Result - %d\n", result);
        for (i = 1; i <= 8; i++)
        {
         printf("(%d): %d\n", i, chess[i]);
        }
        ++result;
    }

    // 主程序
    int main()
    {
        printf("This is for 8 X 8 matrix.\n");
        putchess(1); // 从每一行开始放子
       
        return 0;
    }

        来源:

声明:本文由网友推荐或作者提交,版权归原作者所有,刊登此文仅为传播知识,展示研究成果,提高文章引用率。未经原作者授权,禁止用于任何形式的商业行为。科技论文网倡导尊重知识、尊重劳动、保护原创、知识共享。由于部分论文文章来于网络,文章作者不祥,请相关的原创作者与我们联系,以便加上您的署名。

  
C脚本递归算法-计算八皇后问题
下面没有链接了     经典算法-算术表达式求值
最新论文
·[程序设计] C脚本递归算法-计算八皇后问题
·[程序设计]经典算法-算术表达式求值
·[程序设计]顺序表上的插入算法
·[程序设计]并查集的最小生成树算法
·[程序设计]概率算法简介
·[程序设计]概率算法简介
·[程序设计]猴子选大王-C源代码
·[程序设计]快速字符串搜索算法KMP
·[程序设计]最短路径算法源码
·[程序设计]模式串匹配问题总结
 
 

搜索论文

Google
论文分类

论文网 论文发表网 论文 免费论文网 找论文网 毕业论文 中国论文网 英语论文 百度论文 聘教网 易搜
 免费发布论文    中国论文网 2008版权所有  业务联系:pinjiao@126.com