关闭

数字间隔问题-递归

1052人阅读 评论(0) 收藏 举报
分类:


题目: 
一个14位的数字,由两组1-7的数组成 
要求:11之间有一个数,22之间有两个数,以此类推 
开头两位数字为7,4 
求出这个14位数

正确结果 74151643752362

/*
题目:
一个14位的数字,由两组1-7的数组成
要求:1与1之间有一个数,2与2之间有两个数,以此类推
开头两位数字为7,4
*/
 
#include<stdio.h>
 
 
 
int Change(int i,int n[],intm[]){        //  i当前需要变动的位置  n变动的数组 m取数的数组
    int j;
    for(;i<14;i++){
        if(n[i]==0){
            for(j=0;j<5;j++){
//             printf("i=%d,i=%d,j=%d,m[j]=%d\n",i,n[i],j,m[j]);   //方便查看数据
                if(m[j]!=0&&n[i+1+m[j]]==0&&(i+1+m[j])<14){
                    n[i]=m[j];
                    n[i+1+m[j]]=m[j];
                    m[j]=0;
//                                                int len;              //方便查看数据
//                                                for(len=0;len<14;len++){
//                                                 printf("%d ",n[len]);
//                                                  }                  //可以查看结果
                    Change(i+1,n,m);
                    m[j]=n[i];
                    n[n[i]+1+i]=0;
                    n[i]=0;                  //恢复原状态,进行下一步操作
                }
        }
    if(j==5&&n[i]==0){//避免不必要的递归加快速度。当然可以全排列
            break;
        }
    }
}
    if(i==14)
    for(i=0;i<14;i++){
        printf("%d",n[i]);//输出结果 放在外部更好
    }
}
 
int main(){
    int n[14]={7,4,0,0,0,0,4,0,7,0,0,0,0,0};
    intm[5]={6,5,3,2,1};
    Change(2,n,m);
    return0;
}


 

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

数字三角形——递归求解

一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路 径,把路径上面的数加起来可以得到一个和,和最大的路径称为最佳路径。任务就是求 出最佳路径上的数字之和。 注意:路径上的每一步只能从一个数走到下一层上和它最近的左边的数或者右边的数。   以下是代码实现 #include ...
  • poison_biti
  • poison_biti
  • 2016-07-06 13:19
  • 999

LintCode 用递归打印数字

用递归的方法找到从1到最大的N位整数。 样例 给出 N = 1, 返回[1,2,3,4,5,6,7,8,9]. 给出 N = 2, 返回[1,2,3,4,5,6,7,8,9,10,11,...,99]. 挑战  用递归完成,而非循环...
  • sinat_30440627
  • sinat_30440627
  • 2017-03-22 13:01
  • 360

Lintcode 用递归打印数字

用递归的方法找到从1到最大的N位整数。 注意事项用下面这种方式去递归其实很容易:recursion(i) { if i > largest number: return results.add(i) recursion(i + 1) } ...
  • u010510962
  • u010510962
  • 2016-04-12 21:46
  • 454

全排列的递归算法

原文:http://www.jianshu.com/p/f051a4ae6e93 字符串的全排列是字符串类的算法题的一个考察点,属于普通问题,它有两种实现方法,递归算法和非递归算法,非递归的方法要稍微难一点,以下会依次进行介绍。 全排列的递归算法 算法思想:求n位的字符串的全排列,先确定第0位...
  • hushhw
  • hushhw
  • 2017-09-27 14:45
  • 284

PHP数字格式化,每三位逗号分隔数字,可以保留小数

在报价的时候为了给浏览者更清晰明确的数字,所以需要用到数字格式化,有两种方法,一种自己写函数,另一种当然是系统自带的,其实我更喜欢系统自带的。 先来系统简单的: string number_format ( float number [, int decimals [, string d...
  • aerchi
  • aerchi
  • 2014-07-14 11:21
  • 5017

最优间隔分类器问题

SVM是支持向量机从诞生至今才10多年,发展史虽短,但其理论研究和算法实现方面却都取得了突破性进展,有力地推动机器学习理论和技术的发展。这一切与支持向量机具有较完备的统计学习理论基础的发展背景是密不可分的。 我看了一下网上的帖子和有关的资料,目前关于SVM大约有3到4个版本,但在网上到处都是转载的...
  • sina012345
  • sina012345
  • 2014-10-03 00:35
  • 1155

分治策略(递归,排列问题)

1、递归概念       直接或者间接调用自身的算法叫做递归算法。用函数自身给出定义的函数称为递归函数。有些数据结构,比如二叉树等,由于自身固有的递归特性,特别适合用递归来描述。        递归算法结构清晰,可读性强,且容易用...
  • Robin__Chou
  • Robin__Chou
  • 2015-03-05 17:40
  • 1761

蓝桥杯-经典的递归问题(一)

珍惜作者劳动成果 转载请注明出处致谢蓝桥杯取球问题 问题描述: 在n个球中, 任意取出m个(不放回), 求有多少种不同的取法. 求解思路:   从题目上看, 这个问题对于递归来说似乎没有突破口, 找不到合适的相似性? 这就要发挥我们特长 – 想象!   在进行想象之前需要先明确我们方法的参...
  • u013144863
  • u013144863
  • 2016-09-02 22:46
  • 1176

0-1背包问题(递归实现)

#include #include #include #include #include using namespace std; /* *0-1背包问题(递归实现) */ //int * * values;//values[i][j]表示在前i个物品中能够装入容量为j的背包中的物品的最大值 (...
  • u011390632
  • u011390632
  • 2014-12-03 21:01
  • 2092

【机器学习-斯坦福】学习笔记7 - 最优间隔分类器问题

本次课程大纲: 1、 最优间隔分类器 2、 原始优化问题&对偶优化问题(KKT条件) 3、 SVM对偶问题 4、 核方法(下一讲)
  • maverick1990
  • maverick1990
  • 2013-11-21 20:08
  • 6332