我一直在尝试做一些似乎令人惊讶的挑战---在命令行(Mac OS X终端)上打印等边三角形。我有一个程序,可以计算帕斯卡三角形的第n行,直到某个用户指定的常量。众所周知,如果采用Pascal三角形模2的值,那么与Sierpinski's triangle之间有相关性。向终端打印等边三角形
我一直在设置奇数值为1,偶数值为0,并且当我在终端上打印结果并缩小时,除了显然不是等边的事实外,它看起来不错。这里是缩小出路(所以零和一看起来非常不同)后我的程序的输出例子:
但我不知道......有没有办法让这个三角看正三角形?还是必须在其他地方打印输出?我一直在尝试使用不同的字体,不同的线宽等级,但我无法得到任何接近等边的东西,即使它的确如此,我也没有一种可靠的方法来检查这种情况。部分问题还在于在终端上放大/缩小会导致不同的线宽和高度。
我的代码输入要生成的行数作为输入。然后,打印出每一行时就会考虑该数字。因此,第一行(仅为单个“1”)在打印1之前将打印n-1个空格。然后第二行必须打印n-2个空格,然后打印其实际内容(即“1 1” ),其中包括每个数字之间的空格,等等。它使用C++,但我认为这不重要。
我怀疑我需要找到一些其他的方式让图像出来,所以任何关于图书馆的建议都会很棒。
大多数字符类型是大于宽度高,所以它是将用印刷字符是困难的。 – trumpetlicks
输出中每个“单元位置”的2或3个字符通常为大致方形单元。在我们讨论提示时,还要考虑您只需要存储二进制0和1,并对上面的两个值进行异或运算以得到模2结果。而且,当你使用不同的颜色时,模3(比如说)会更有趣。 :-) –
哦,是的,为了更好玩,请考虑在位置(x,y)输出'x&〜y'。呵呵。 –