-2

今日、コーディング コンテストでいらいらする質問を受けました。私は最初のラウンドで中出ししましたが、2 番目のラウンドで次の質問が私を罠にはめました。

Question: Input N = 4
          Output:
                 1
                 0 1
                 1 0 1
                 0 1 0 1

私は多くのことを試みましたが、毎回失敗しました。

このばかげた間違った解決策とは別に、私は多くの凝ったことを試みましたが、最終的に失敗しました。私の C 知識のどの部分が弱いですか?

この質問をされたら、あなたはどう答えますか?

4

5 に答える 5

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');
    }
}
于 2013-05-27T12:48:23.137 に答える
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");
}
于 2013-05-27T12:41:56.853 に答える
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");

 }
于 2013-05-27T12:51:38.983 に答える
-2
num = 12
new_string = ''
new_list = ''
while num:
    for i in range(1,num+1):
        strings_of_ones = new_string+ '1' * i
        new_list = list(strings_of_ones)
        for j in range(1,len(new_list),2):
            new_list[j]='0'
        print(' '.join(new_list[::-1]))
        num -= 1
于 2021-09-08T10:01:24.493 に答える