如何在C中只用2个循环和1个if语句绘制这个数字?

def*_*foe 3 c puzzle logic for-loop if-statement

我如何在C中绘制2个for循环和1个if语句?

AAAAA
AAAAB
AAABB
AAAAB
AAAAA
Run Code Online (Sandbox Code Playgroud)

我知道我必须比较行和列,但我不知道如何得到确切的结果.

它必须适用于大于0且小于24的每个数字.

到目前为止我所做的是以下内容:

for (row = 1; row <= n; row++)
{
    for (column = 1; column <= n; column++)
    {
        if ( row >= column )
        {
            printf("A");
        }
        else
        {
            printf("B");
        }
    }
    printf("\n");
}
Run Code Online (Sandbox Code Playgroud)

这给了我这个n = 5:

ABBBB
AABBB
AAABB
AAAAB
AAAAA
Run Code Online (Sandbox Code Playgroud)

Eug*_*lca 5

干得好:

for (row = 1; row <= 5; row++)
{
    for (column = 1; column <= 5; column++)
    {
        if ( (row < column) && (column > 5 - row + 1) )
        {
            printf("B");
        }
        else
        {
            printf("A");
        }
    }
    printf("\n");
}
Run Code Online (Sandbox Code Playgroud)

演示

解释:

条件(row < column)'绘制':

ABBBB
AABBB
AAABB
AAAAB
AAAAA
Run Code Online (Sandbox Code Playgroud)

条件(column > 5 - row + 1)'绘制':

AAAAA
AAAAB
AAABB
AABBB
ABBBB
Run Code Online (Sandbox Code Playgroud)

这些条件的组合是你的结果.