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;
     }
  • 相关阅读:
    软工实践4
    软工实践3
    软工实践1
    《暗时间》读书笔记
    关系规范化(数据库)
    关于Git的初步使用
    软件体系结构模式
    第六周编程总结
    第五周编程总结
    第四周编程总结
  • 原文地址:https://www.cnblogs.com/0803yijia/p/2603964.html
Copyright © 2011-2022 走看看