谁知道这个是什么意思 在线等if ((num&(1<<j))==0)为什么要这样用 10
7.设计递归算法生成n个元素的所有排列对象。#include<iostream>usingnamespacestd;intdata[100];//在m个数中输出n个排列数...
7. 设计递归算法生成n个元素的所有排列对象。
#include <iostream>
using namespace std;
int data[100];
//在m个数中输出n个排列数(n<=m)
void DPpl(int num,int m,int n,int depth)
{
if(depth==n)
{
for(int i=0;i<n;i++)
cout<<data[i]<<" ";
cout<<endl;
}
for(int j=0;j<m;j++)
{
if((num&(1<<j))==0)
{ data[depth]=j+1;
DPpl(num+(1<<j),m,n,depth+1);
}
}//for
}
int main()
{
DPpl(0,5,5,0);
return 0;
} 展开
#include <iostream>
using namespace std;
int data[100];
//在m个数中输出n个排列数(n<=m)
void DPpl(int num,int m,int n,int depth)
{
if(depth==n)
{
for(int i=0;i<n;i++)
cout<<data[i]<<" ";
cout<<endl;
}
for(int j=0;j<m;j++)
{
if((num&(1<<j))==0)
{ data[depth]=j+1;
DPpl(num+(1<<j),m,n,depth+1);
}
}//for
}
int main()
{
DPpl(0,5,5,0);
return 0;
} 展开
1个回答
展开全部
左移j位,就是检测num第j位是不是1
追问
跟后面的代码有什么联系??
追答
代码要实现什么功能不知道,只是说这个语句的意义。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |