如何实现生成只由0,1组成的任意长度的所有序列,例如长度为2的序列:00,01,10,11共四个,长度为3的话有9个

 我来答
cdyzxy
2013-02-04 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:85%
帮助的人:3725万
展开全部
二进制数知道吧,如果是1位二进制数,其取值是0和1;如果是两位二进制数,其取值是00 01 10 11即十进制0 1 2 3,这正好是你所需要的。
你的程序可以先输入这个位数,比如,n=10,
然后生成10位全是1的二进制数据,方法是:for ( i=0,k=0;i<n-1;i++,k<<=1 ) k|=1;
然后顺序输出二进制各位即可,方法是:
for ( j=0;j<=k+1;j++ )
{
for ( i=0,m=j;i<n;i++,m>>=1 )
printf("%d",m&1);
printf(" ");
}
printf("\n");
另外,长度为3的应该是8个而不是9个。
♂凡鸟♂fcb78ab
2013-01-21 · TA获得超过3711个赞
知道小有建树答主
回答量:586
采纳率:100%
帮助的人:615万
展开全部
//简单写了一段你看看吧,不理解可追问
#include <stdio.h>
void print(int out, int len)
{
int i,mod;
for(i = 0; i < len; i++)
{
mod = 1<<(len-i-1);
printf("%d",(out/mod)%2);
}
printf("\n");
}
int main()
{
int input,max,i;
puts("请输入序列长度:");
scanf("%d",&input);
max = 1<<input;
for(i = 0; i < max;i++)
print(i,input);
return 0;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式