#include <stdio.h>
int main()
{
long long a[4] = {0}; //0-平移,1-旋转,2-缩放,3-对称
long long b[4] = {0};
//平移转旋转,旋转转平移或对称,缩放转对称,对称转旋转或缩放
//0-1;1-0,3;2-3;3-1,2
int n;
scanf("%d",&n);
a[0] = 1; //第一次平移1
for(int i=2;i<=n;i++) //根据上一次四种变换的情况,按照变换规则,统计本次各种变换的数量
{
if(a[0] > 0)
b[1] += a[0];
if(a[1] > 0)
{
b[0]+=a[1];
b[3]+= a[1];
}
if(a[2] > 0)
b[3]+=a[2];
if(a[3] > 0)
{
b[1]+=a[3];
b[2] += a[3];
}
for(int j=0;j<4;j++)
{
a[j] = b[j];
b[j] = 0;
printf("%d ",a[j]);
}
printf("\n");
}
system("pause");
return 0;
}
最终输出结果会发现,这就是一个斐波那契数列!