33,008
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <malloc.h>
#include <math.h>
#include <conio.h>
char bMatrix[16][4];
void vMatrixProc()
{
int iCounter;
char bBit;
int iTempFlag;
int iRows;
int iCols;
//int iEndNum;
//iEndNum = pow(2, iRows);
iCounter = 0;
iRows = 0;
iCols = 0;
do
{
iTempFlag = 8;
while (iTempFlag != 0)
{
bBit = (iTempFlag & iCounter) != 0? 1: 0;
bMatrix[iRows][iCols++] = bBit;
if (iCols >= 4)
{
iRows++;
iCols = 0;
}
iTempFlag = iTempFlag >> 1;
}
iCounter++;
} while(iCounter < 16);
}
int main()
{
int iFirstNum;
int iSecondNum;
vMatrixProc();
for (iFirstNum = 0; iFirstNum < 16; iFirstNum++)
{
for (iSecondNum = 0; iSecondNum < 4; iSecondNum++)
{
printf("%d", bMatrix[iFirstNum][iSecondNum]);
}
printf("\n");
}
system("pause");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
#define MAXN 10
#define MAX2N 1024
int p[MAX2N][MAXN];
int fill(int n)
{
if ( 1 == n )
{
p[1][MAXN-1] = 1;
return 2;
}
else
{
int count = fill(n-1);
int count2 = count*2;
// 在 n-1 的数组前加1,已经赋了初值0,所以0就不需要加了
for ( int i=count;i<count2;i++)
{
// 复制一份在 n-1 时填充的数据
memcpy(&p[i][MAXN-n+1],&p[i-count][MAXN-n+1],(n-1)*sizeof(int));
// 在 n-1 填充的数据前加填 1
p[i][MAXN-n] = 1;
}
return count2;
}
}
int main()
{
// 填充
fill(MAXN);
// 打印结果
for( int i=0;i<MAX2N;i++ )
{
for( int j=0;j<MAXN;j++)
{
printf("%d",p[i][j]);
}
printf("\n");
}
return 0;
}