免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: gao_linfeng
打印 上一主题 下一主题

有没有更简单的方法得出此图? [复制链接]

论坛徽章:
11
技术图书徽章
日期:2014-03-01 14:44:34天蝎座
日期:2014-05-21 22:11:59金牛座
日期:2014-05-30 17:06:14
11 [报告]
发表于 2008-09-04 20:35 |只看该作者
>>> print reduce(lambda a, b: a + '\n' + b, map(lambda n, f = lambda x: [ str(e) for e in range(x/2) + (x%2 and range(x/2, -1, -1) or range(x/2 - 1, -1, -1))]: ' '*(20 - n) + ' '.join(f(n)), range(1,21)))

                   0
                  0 0
                 0 1 0
                0 1 1 0
               0 1 2 1 0
              0 1 2 2 1 0
             0 1 2 3 2 1 0
            0 1 2 3 3 2 1 0
           0 1 2 3 4 3 2 1 0
          0 1 2 3 4 4 3 2 1 0
         0 1 2 3 4 5 4 3 2 1 0
        0 1 2 3 4 5 5 4 3 2 1 0
       0 1 2 3 4 5 6 5 4 3 2 1 0
      0 1 2 3 4 5 6 6 5 4 3 2 1 0
     0 1 2 3 4 5 6 7 6 5 4 3 2 1 0
    0 1 2 3 4 5 6 7 7 6 5 4 3 2 1 0
   0 1 2 3 4 5 6 7 8 7 6 5 4 3 2 1 0
  0 1 2 3 4 5 6 7 8 8 7 6 5 4 3 2 1 0
0 1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1 0
0 1 2 3 4 5 6 7 8 9 9 8 7 6 5 4 3 2 1 0

论坛徽章:
0
12 [报告]
发表于 2008-09-04 21:46 |只看该作者
嗯,确实是python代码

怀念MATLAB了,想当初没好好学,现在即使看到也不认识了

[ 本帖最后由 drog1983 于 2008-9-4 21:57 编辑 ]

论坛徽章:
0
13 [报告]
发表于 2008-09-04 21:48 |只看该作者
原帖由 drog1983 于 2008-9-4 21:46 发表
冒昧的问一句,楼上的是MATLAB代码吗?

python代码吧,
C写个main函数递归也行

论坛徽章:
1
双子座
日期:2015-01-04 14:25:06
14 [报告]
发表于 2008-09-04 22:55 |只看该作者
原帖由 cheng_lai_shun 于 2008-9-4 15:54 发表
printf("        0
                  0 0
                 0 1 0
                0 1 1 0
               0 1 2 1 0
              0 1 2 2 1 0
             0 1 2 3 2 1 0
            0 1 2 3 3 2 ...

这个方法最好

论坛徽章:
0
15 [报告]
发表于 2008-09-04 23:59 |只看该作者
#include <stdio.h>
#include <string.h>

int main()
{
&nbsp;&nbsp;&nbsp;&nbsp;char n[40] = "                                       ";
&nbsp;&nbsp;&nbsp;&nbsp;char m[40];
&nbsp;&nbsp;&nbsp;&nbsp;int i, j;

&nbsp;&nbsp;&nbsp;&nbsp;for(i=0, j=0; i<20; i++) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strncpy(m, n+1, 19);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m[19] = (n[19]!=' ') ? (' ') : ('0'+j++);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strncpy(m+20, n+19, 19);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%s\n", m);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strcpy(n, m);
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;exit(0);
}

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP