gpt4 book ai didi

c++ - 这个 "print a heart"程序在 C 语言中是如何工作的?

转载 作者:行者123 更新时间:2023-11-30 19:21:49 27 4
gpt4 key购买 nike

我在互联网上的一些博客上偶然发现了这段代码。这是一个非常有趣的程序,但我一段时间以来一直试图弄清楚该程序实际上是如何工作的,从那时起我就一直坚持下去。我只是不明白程序如何打印对称性。心脏的一半是打印出来的,另一半是通过镜像复制的吗?如果有人能帮我弄清楚其中的逻辑,我将不胜感激。提前致谢。

//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;
}

最佳答案

不,这对于利用对称性并没有多大作用。

大概您关心的部分是心的上半部分,因为下半部分只是一个基本的三角形。

上半部分的计算相当简单。虽然它们通常会因为字符单元不是方形而扭曲,但它基本上所做的只是绘制两个 size 半径的半圆。因此,它选择每个半圆的中心点,然后计算从中心到当前点的距离(基本毕达哥拉斯公式)。如果该距离小于距任一圆中心的选定半径,则会打印 a。否则它会打印一个空格。

关于c++ - 这个 "print a heart"程序在 C 语言中是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19042765/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com