Problem E: 01字串
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 91 Solved: 62
[ Submit][ Status][ Web Board]
Description
对于长度为7位的一个01串,每一位都可能是0或1,一共有128种可能。它们的前几个是
0000000
0000001
0000010
0000011
0000100
0000101
Input
没有输入
Output
请按从小到大的顺序输出这128种01串。
Sample Input
4
Sample Output
0000000 0000001 0000010 0000011 <以下部分省略>
HINT#include <iomanip>
#include <iostream>
using namespace std;
int main()
{
int n,r,i,j,p,m;
char str[100],temp;
for(i=0;i<128;i++)
{
n=i;r=2;//进制r
p=0;
while(n!=0)
{
m=n%r; //余数m
str[p++]=m+48;
n=n/r;
}
for(j=0;j<p/2;j++)
{
temp=str[j];
str[j]=str[p-j-1];
str[p-j-1]=temp;
}
str[p]='\0';
cout<<setfill('0')<<setw(7);//七位,不足补0
if(i==0)
cout<<"0"<<endl;
else cout<<str<<endl;
}
return 0;
}
#include <iomanip>
#include <iostream>
using namespace std;
int main()
{
int n,r,i,j,p,m;
char str[100],temp;
for(i=0;i<128;i++)
{
n=i;r=2;//进制r
p=0;
while(n!=0)
{
m=n%r; //余数m
str[p++]=m+48;
n=n/r;
}
for(j=0;j<p/2;j++)
{
temp=str[j];
str[j]=str[p-j-1];
str[p-j-1]=temp;
}
str[p]='\0';
cout<<setfill('0')<<setw(7);//七位,不足补0
if(i==0)
cout<<"0"<<endl;
else cout<<str<<endl;
}
return 0;
}