C语言。。。把一个数组里的数字(均为一位)全排列,(例如1,2,3全

C语言。。。把一个数组里的数字(均为一位)全排列,(例如1,2,3全排列得到123.132.213.231.312.321)得到所有重新排列后的结果除以11。网上百度到使... C语言。。。把一个数组里的数字(均为一位)全排列,(例如1,2,3全排列得到123.132.213.231.312.321)得到所有重新排列后的结果除以11。网上百度到使用递归调用,但是我写过之后无限循环,求教。。。。
该问题已关闭。
展开
 我来答
9979496
2017-01-15 · TA获得超过1175个赞
知道小有建树答主
回答量:850
采纳率:100%
帮助的人:614万
展开全部
#include <stdio.h>

int data[] = {1,2,3,4};
int n = sizeof(data)/sizeof(data[0]);
int used[20];
int print()
{
    int i,j;
    for(i=1;i<=n;i++)
    {
        for(j=0;j<n;j++)
        {
            if(used[j]==i)printf("%d",data[j]);
        }
    }
    printf("\n");
}
int dfs(int p)
{
    if(p>n)
    {
        print();
        return 0;
    }
    int i = 0;
    for(i=0;i<n;i++)
    {
        if(!used[i])
        {
            used[i]=p;
            dfs(p+1);
            used[i]=0;
        }
    }
}
int main()
{
    dfs(1);
 }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式