-1

インターネット上のブログでこのコードに出くわしました。これは非常に興味深いプログラムですが、私はこのプログラムが実際にどのように機能するかをしばらく理解しようと試み、それ以来、それに固執しています。プログラムが対称性をどのように出力するかわかりません。ハートの半分は印刷され、残りの半分はミラーリングによって複製されていますか? 誰かが私がロジックを理解するのを手伝ってくれるなら、私はそれを感謝します. 前もって感謝します。

//Include Headers.
#include <stdio.h>
#include <math.h>
int main()
{
    int x, y, size=20;
    for (x=0; x<size; x++)
    {
        for (y=0; y<=4*size; y++)
        {
            double dist1 = sqrt( pow(x-size,2) + pow(y-size,2) );
            double dist2 = sqrt( pow(x-size,2) + pow(y-3*size,2) );
            if (dist1 < size + 0.5 || dist2 < size + 0.5 )
                 printf("%c",97);
            else
                 printf(" ");
        }
        printf("\n");
    }
    for (x = 1; x <= 2*size; x++)
    {
        for (y=0; y<x; y++)
        printf(" ");
        for (y=0; y<4*size + 1 - 2*x; y++)
            printf("%c",86);
        printf("\n");
    }

    return 0;  
}
4

1 に答える 1