社区
C语言
帖子详情
一个简单的问题?
giantzz
2002-03-18 05:57:53
如何用递归实现n个元素所有的排列方式并打印出来?
...全文
56
9
打赏
收藏
一个简单的问题?
如何用递归实现n个元素所有的排列方式并打印出来?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fangrk
2002-03-20
打赏
举报
回复
http://www.csdn.net/Expert/TopicView1.asp?id=562179
ygd
2002-03-20
打赏
举报
回复
#include <iostream.h>
#include <conio.h>
#define size 50
//////////////////////////////////////////
int array[size][size]; //全局变量,array用来表示所求矩阵.
int num=0; //所有拉丁方矩阵的个数
int flag=1; //打印标志位,为1则打印。
void swap(int &a,int &b); //交换a,b
void setArray(int n); //初始化二维数组
void perm(int *arr,int k,int m); //对数组arr,从下标k到m的元素全排列
//////////////////////////////////////////////
void swap(int &a,int &b)
{
int temp=a;a=b;b=temp;
}
//////////////////////////////////////////////
void perm(int *arr,int k,int n)
{
if(k>=n)
{
num++;
if(flag==1)
{
cout<<"press y to print , press n to continue."<<endl;
cout<<endl;
if (getch()=='n') flag=0;
}
if(flag==1)
{
cout<<"-----------------------------------------\n";
cout<<num<<endl;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
cout<<array[arr[i]-1][j]<<" ";
cout<<endl;
}
}
}
else for(int i=k;i<n;i++)
{
swap(arr[k],arr[i]);
perm(arr,k+1,n);
swap(arr[k],arr[i]);
}
}
////////////////////////////////////////////////
void setArray(int n)
{
int i,j;
for(i=0;i<n;i++)
{
array[0][i]=i+1;
}
for(i=1;i<n;i++)
{
for(j=0;j<n-1;j++)
array[i][j]=array[i-1][j+1];
array[i][n-1]=array[i][0]-1;
}
}
////////////////////////////////////////////////
void main()
{
int i,j,k;
//int array[size][size]
int arr[size];
cout<<"Input the size of array:";
int n;
cin>>n;
for(i=0;i<n;i++)
{
arr[i]=i+1;
}
setArray(n);
perm(arr,0,n);
cout<<"The total number of the array is "<<num<<endl;
getch();
}
iamknight
2002-03-20
打赏
举报
回复
就是,用递归解决,对效率就不可能有太高的要求了。
giantzz
2002-03-20
打赏
举报
回复
帮忙用c描述一下!!!
giantzz
2002-03-19
打赏
举报
回复
dd
neccui
2002-03-18
打赏
举报
回复
否则什么?
这个问题不可能高效的了。
giantzz
2002-03-18
打赏
举报
回复
请用C语言描述,要高效(否则...)
Cauty45
2002-03-18
打赏
举报
回复
void f(int a[], int flag[],int n)
{
if(n==1){
out a[i] where flag[i]==1;
return;
}
for(每一个flag[i]==1 的i){
copy flag[]==>flag1[];
flag1[i]=0;
f(a,flag1,n-1);
}
}
void main()
{
int a[]={1,2,3,4,5};
int flag[]={1,1,1,1,1};
f(a,flag,5);
}
Cauty45
2002-03-18
打赏
举报
回复
void f(int a[], int flag[],int n)
{
if(n==1){
out a[i] where flag[i]==1;
}
for(每一个flag[i]==1 的i){
copy flag[]==>flag1[];
flag1[i]=0;
f(a,flag1,n-1);
}
}
文本文件编码转换工具 gbk utf8 gb2312
写此贴为记录自己的学习历程,供后来者以观. 原因,我决定学习PHP+MYSQL之后选择了用整合包的环境(因为我懒) 经过历时
一个
星期的比较 揣摩 测试之后选择了 VertrigoServ 可是它美中不足的是mysql里中文显示"????????".最后几经周折总算解决了. 方法如下: 1)在phpmyadmin 中建库的时候一切默认 2)建表时候一切默认;至于导入*.SQL没试应该是不用动什么 3)在 php 文件头部加入 "说明此文件编码为utf8" 4)在 mysql_select_db("表名",$id); 后面加入一行 mysql_query("set names utf8;"); 5)*.php 文件在存盘的时候也以 "utf-8"编码存盘. 如此一来整站编码就都是国际能用的utf8编码了.通用性现在做到最好了.
问题
也是有的,在此环境下涉及到数据库运行的文件都必须是 utf8编码.这样一来就出现了不兼容,因为在国内大家都是以GBK gb2312编的码 包括 17PHP.com 网站里的学习源码文件(我用的是77例中的) 和很多插件 论坛代码... ...Discuz!也是的 解决起来很
简单
,把它们的编码都改成 utf8 好了. 批量文件转码工具
什么是递归?递归的两个必要条件。满足两个必要条件递归就一定没
问题
?——C语言代码案例
一. 什么是递归? 所谓递归,说白了就是函数自己调自己(但不是
简单
的自己调自己!),
一个
函数直接或间接调用自身的一种方法,它通常把
一个
大型复杂的
问题
层层转化为
一个
与原
问题
相似的规模较小的
问题
来求解。 ————————————————————————————————————— 二. 递归的两个必要条件 1. 存在 限制条件 ,当满足这个限制条件的时候,递归便不再继续 。 2.每次递归调用之后会越来越接近这个 限制条件 。 ————————————————————————————————————— 三. 满足两
【react】什么是fiber?fiber解决了什么
问题
?从源码角度深入了解fiber运行机制与diff执行
我在[react] 什么是虚拟dom?虚拟dom比操作原生dom要快吗?虚拟dom是如何转变成真实dom并渲染到页面的?一文中,介绍了虚拟的概念,以及中虚拟的使用场景。那么按照之前的约定,本文来聊聊中另
一个
非常重要的概念,也就是。那么通过阅读本文,你将了解到如下几个知识点:同样,若文中涉及到的源码部分,我依然会使用的版本,保证文章的结论不会过于老旧;其次,的概念理解起来其实比较枯燥,但我会尽量描述的通俗易懂一点,那么本文开始。我们学习任何东西,一定会经历两个阶段,一是这个东西是什么?二是这个东西有什么用(解
阿里面试题:什么是循环依赖?Spring是如何解决循环依赖的?
什么是循环依赖? 顾名思义,循环依赖就是A依赖B,B又依赖A,两者之间的依赖关系形成了
一个
圆环,通常是由于不正确的编码所导致。Spring只能解决属性循环依赖
问题
,不能解决构造函数循环依赖
问题
,因为这个
问题
无解。 接下来我们首先写
一个
Demo来演示Spring是如何处理属性循环依赖
问题
的。 Talk is cheap. Show me the code 第一步:定义
一个
类ComponentA,其有
一个
私有属性componentB。 package com.tech.ioc; import org.spri
一个
servlet可以创建
一个
或者多个实例对象吗?
在面试时,对于初学者来说,这不是
一个
简单
的
问题
,没有太多的工作经验,这题你是不敢确认的,因为平常谁会想到这样的怪
问题
呢? 甚至很多工作了几年的程序员也不知道,因为他们没遇到过这样的
问题
。所以说这的确是
一个
面试的好题目。
一个
servlet其实是可以创建
一个
或者多个实例对象的。
一个
servlet可以通过指定不同的和相同的来产生不止
一个
servlet对象 很
简单
的
一个
问题
,
C语言
70,034
社区成员
243,244
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章