斐波那契蛇 — Python实现
发布日期:2021-10-02 06:27:38
浏览次数:2
分类:技术文章
本文共 1073 字,大约阅读时间需要 3 分钟。
题目描述
将斐波那契数列按照从大到小,顺时针的顺序存放在n*n
的方阵中,n=3
的情况如下图所示:
解题思路
先生成斐波那契数列的数组,让后将数组按照要求存放:
- 存放的时候我们可以一圈一圈地存放
- 当整个一圈遍历完了以后进行下一圈的遍历
- 停止条件为
2*圈数
小于n
(每遍历整个一圈少两行或两列)
代码实现
n=int(input())def fib(n):#生成斐波那契数组 if n==1: return [1] if n==2: return [1,1] res=[1,1] for i in range(2,n): res.append(res[i-1]+res[i-2]) return resdef trans(res,n):#转化为要求的格式 length=res.__len__() tab=[[0]*n for i in range(n)] layer=0 count=0 while 2*layer<=n: for c in range(layer,n-layer): tab[layer][c]=res[length-1-count] count=count+1 for r in range(layer+1,n-layer): tab[r][n-layer-1]=res[length-1-count] count=count+1 for c in range(n-layer-2,layer-1,-1): tab[n-layer-1][c]=res[length-1-count] count=count+1 for r in range(n-layer-2,layer,-1): tab[r][layer]=res[length-1-count] count=count+1 layer=layer+1 return tabres=trans(fib(n*n),n)for i in range(n): for j in range(n): print(res[i][j],end=' ') print()
代码运行结果:
输入4
,输出结果如下: 转载地址:https://blog.csdn.net/Jeaten/article/details/108159880 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月25日 23时49分25秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Lua(十八)——错误处理,垃圾回收
2019-04-27
xLua(一)——介绍
2019-04-27
xLua(二)——下载
2019-04-27
Unity中实现解析Json文件
2019-04-27
Unity自带Json解析库——JsonUtility
2019-04-27
Unity中使用ViedoPlayer操作视频文件
2019-04-27
JAVA Freemarker(9)---常见语法大全
2019-04-27
Java MyBatis(1)--- Generator 详解
2019-04-27
Java MyBatis(2)--- generatorConfig.xml详解与运行
2019-04-27
VueJS(5)---初步练习(5题)
2019-04-27
mysql(3)-- 修改root密码命令小结
2019-04-27
JQuery(3)--冒泡效果
2019-04-27
异常(2)-- UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/项目包名
2019-04-27
Android软键盘(1)---输入法界面管理(打开/关闭/状态获取)
2019-04-27
Android动态设置view的高度宽度
2019-04-27
css3 属性 text-overflow 实现截取多余文字内容 以省略号来代替多余内容
2019-04-27
vue 事件总线EventBus的概念、使用以及注意点
2019-04-27
JavaScript 用七种方式教你判断一个变量是否为数组类型
2019-04-27
黄家懿:河北高校邀请赛 -- 二手车交易价格预测决赛答辩
2019-04-27