今天我在编码比赛中遇到了一个恼人的问题。我通过第一轮比赛,但在第二轮比赛中,下面的问题让我陷入困境。
Question: Input N = 4
Output:
1
0 1
1 0 1
0 1 0 1
我尝试过很多东西但每次都失败了。
除了这个愚蠢的错误解决方案,我尝试了许多花哨的东西,但最终失败了。 我的C知识的哪一部分很弱?
如果你被问到这个问题,你会如何解决?
答案 0 :(得分:4)
对我来说似乎很微不足道:
int main(int argc, char *argv[])
{
int n = strtol(argv[1], NULL, 10);
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
printf("%d ", i % 2 ? j % 2 : 1 - j % 2);
}
printf("\n");
}
return 0;
}
答案 1 :(得分:2)
void printBinaryTriangle(const unsigned int rows) {
for(int row = 1; row <= rows; ++row) {
for (int column = 0; column < row; ++column) {
printf("%d ", (row + column) % 2);
}
putchar('\n');
}
}
答案 2 :(得分:1)
这是你想要的吗?
for(int k = 0; k < N; k++){
for(int i = 0; i < k+1; i++){
if(i % 2 == k % 2)
printf("1 ");
else
printf("0 ");
};
printf("\n");
}
答案 3 :(得分:1)
这对我有用。
int i,j,flag;
int num=4;
flag=1;
for(i=0;i<num;i++)
{
for(j=0;j<i+1;j++)
{
printf("%d",(j+flag)%2);
}
if(flag)
{
flag=0;
}
else
{
flag=1;
}
printf("\n");
}