zoukankan      html  css  js  c++  java
  • 用回溯法求1~n个数组成的集合

    这道题是自己写着玩的,看看能不能掌握简单的回溯,是挑战编程上的一个小程序自己打下来的。留个纪念。还有一个回溯是一个牛喝水的那一道。
    八皇后就不多少了,我想基本提到回溯法的树上都会提及八皇后和它的代码。
    View Code
     #include <stdio.h>
     #include <stdlib.h>
     int leap = 0;
     void process(int a[],int k)
     {
         printf("{");
         int i;
         for(i = 1;i <= k;i++)
         if(a[i])
         printf(" %d",i);
         printf("}");
         puts("");
     }
     void backtrack(int a[],int k,int n)
     {
         int c[2];
         c[0] = 1;
         c[1] = 0;
         int i;
         if(k == n)
         process(a,k);
         else
         {
             k =k+1;
             for(i = 0;i< 2;i++)
             {
                 a[k] = c[i];
                 backtrack(a,k,n);
                 if(leap) return;
             }
         }
     }
     int main()
     {
         int a[1010],n,i;
         while(~scanf("%d",&n))
         {
             backtrack(a,0,n);
             //backtrack(a,1,n);
         }
         return 0;
     }
  • 相关阅读:
    MySQL快速入门
    关系模型
    从Qt到PyQt
    Qt 绘图与动画系统
    Django请求响应对象
    Django控制器
    Django模板
    第一个Django项目
    图的存储与遍历
    AOE网与AOV网
  • 原文地址:https://www.cnblogs.com/0803yijia/p/2603964.html
Copyright © 2011-2022 走看看