谁知道这个是什么意思 在线等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;

}
展开
 我来答
woshidaniel
2015-09-19 · TA获得超过9241个赞
知道小有建树答主
回答量:1760
采纳率:96%
帮助的人:943万
展开全部
左移j位,就是检测num第j位是不是1
追问
跟后面的代码有什么联系??
追答
代码要实现什么功能不知道,只是说这个语句的意义。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式