45分钟,写出一道编程题。傻了吧唧,也没找人助攻,自己又没做出来,所以挂掉了。挂掉了才有动力研究一下吧。
如下图所示,输入n输出对应的图形。
解题思路:
先由n=1,推出n=2就可以找到规律。
将上下分为两块,下部分的左右其实是一样的。假设上一个图形存在pre中pre的行列分别是 rows和cols,现在是now。
上部分 :
for(int h=0;h<rows;h++){
int add=pre[0].length/2;
for(int k=0;k<cols;k++){
now[h][k+add]=pre[h][k];
}
}
下部分:
for(int h=0;h<rows;h++){
for(int k=0;k<cols;k++){
now[pre.length+h][k]=pre[h][k];
now[pre.length+h][k+pre[0].length]=pre[h][k];
}
}
全部代码: