01字串
Time Limit:1000MS Memory Limit:0KB 64bit IO Format:%lld & %llu
问题描述
对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:
00000
00001
00010
00011
00100
请按从小到大的顺序输出这32种01串。
输入格式
本试题没有输入。
输出格式
输出32行,按从小到大的顺序每行一个长度为5的01串。
样例输出
00000
00001
00010
00011
<以下部分省略>
初始化为0,而非‘0’,通过+1进行计算。
#include<stdio.h>
#include<string.h>
int main()
{
char a[32][6];
int i,j,k,l;
for(i=0; i<32; i++)
{
for(j=0; j<5; j++)
{
a[i][j]=0; //初始化为0;
}
a[i][j]='\0';
}
for(i=0;i<5;i++)
a[0][i]='0'; //初始化第一个字符串
for(i=1; i<32; i++)
{
for(j=4; j>=0; j--) //每个字符串加1,得到下一个字符串
{
if(j==4)
a[i][j]=a[i-1][j]+1; //字符尾加1
else
a[i][j]=a[i-1][j]+a[i][j]; //其他的加上它本身,因为进位,a[i][j]可能不等于0;
if(a[i][j]>'1') //进位的处理。
{
a[i][j]='0';
a[i][j-1]+=1;
}
}
}
for(i=0; i<32; i++)
printf("%s\n",a[i]);
return 0;
}