70,023
社区成员




int main(int argc, char* argv[])
{
int k[100];
int p = 0, q, i,j;
int n;
if (argc == 2)
{
n = atoi(argv[1]);
}
else
scanf("%d",&n);
printf("{");
p = zuoyi(n);
......
......
}
#include <stdio.h>
int zuoyi(int n)
{
int i = 1;
for( ; i <= n; i++)
i = i << 1;
return i;
}
int main( )
{
int k[100];
int p = 0, q, i,j;
int n;
scanf("%d",&n);
printf("{");
p = zuoyi(n);
for( i = 1; i <= p; i++)
{
j = i;
for( q = 0; j >= 0; q ++ )
{
k[q] = j % 2;
j = j / 2;
if (j == 0)
break;
}
for( ; q >= 0; q -- )
{
p = k[q];
p += 10 *p;
}
for( q = 0; q <= n; q ++ )
{
if( p % 10 == 1)
{
printf("%d,",n);
p = p >> 1;
}
n -- ;
}
printf("%d}", -- n);
}
}
#include <stdio.h>
#include <stdlib.h>
/*
int zuoyi(int n)
{
int i = 1;
for( ; i <= n; i++)
i = i << 1;
return i;
} */
//上面有问题,换成下面的
int zuoyi(int n)
{
int i = 1<<n;
return i-1;
}
int main()
{
int k[100];
int p = 0, q,i,j;
int n;
scanf("%d",&n);
p = zuoyi(n);
for ( i = 0; i <= p; i++ )
{
j = i;
for ( q = 0; j > 0; q++ )
{
k[q] = j%2;
j = j/2;
}
printf(" { ");
while (q--)
{
if ( k[q] ) printf("%d ",q+1);
}
printf("}\n");
}
system("PAUSE");
return 0;
}
4
{ }
{ 1 }
{ 2 }
{ 2 1 }
{ 3 }
{ 3 1 }
{ 3 2 }
{ 3 2 1 }
{ 4 }
{ 4 1 }
{ 4 2 }
{ 4 2 1 }
{ 4 3 }
{ 4 3 1 }
{ 4 3 2 }
{ 4 3 2 1 }
请按任意键继续. . .
这里是个死循环啊:
j最终一直就是0,
for( q = 0; j >= 0; q ++ )
{
k[q] = j % 2;
j = j / 2;
}