一串神奇的代码


谢尔宾斯基三角形啥玩意儿大家可能没听过,但给你看张图大概就知道是啥样儿了,就是下面这个鸟样:
请输入图片描述
这在几何数学上叫分形。仔细观察这个三角形大家就会发现它的分布是有规律的,改变的只是它的尺寸而已,那么这个三角形的空白部分如何控制输出呢?首先我们定义一个一维数组用于存储标记是否输出空格,然后随着输出行的增加不断动态变化即可。数组我们定义为a[100]={1},把第一位初始化为1,否则异或数组的元素永远都为0, 至于异或定义不清楚的可以去看下这里,代码如下:

for(int j=i; j>=0; j--) a[j] ^= a[j-1];

这里i是从0开始的行数,我们不断的对一维数组从后往前异或便可以控制a数组里的元素为1还是为0了,最后在输出图形的时候分奇数行还是偶数行,加上此输出位是否为0就可以了,1就输出指定形状,0就输出空格。

声明:Kira's Blog|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 一串神奇的代码


Truth is I missed those summer days