由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - easy problem coconut
相关主题
how to print 2 exponential digits in windows by using Perl现在还鼓吹学c++好的,心理绝对阴暗之极。
C语言一个passing variable的问题易写性,易维护和执行效率综合来看
perl sprintf question converting dec to hex谭浩强的c c++程序设计对初学者危害有多大
Perl Q: how to convert integer to MAC addressC语言里的<<=是什么意思?
[合集] Java不适合于作为主要编程教学语言by孟岩地址空间里的一个BYTE不能写入(是合法地址)
小孩子学哪种编程语言比较好?请教一道C语言的题目
如何自学pythonC语言中关于fseek和fscanf/fgets的怪事。
有码工的地方就有是非啊请教几个汇编语言的问题
相关话题的讨论汇总
话题: bytes话题: coconut话题: print话题: easy话题: problem
进入Programming版参与讨论
1 (共1页)
c*****t
发帖数: 1879
1
发信人: coconut (可可), 信区: Unix
标 题: easy problem
发信站: The unknown SPACE (Tue Jun 6 05:42:09 2000), 站内信件
Use perl/sh or whatever language of your choice to write
a program that is smaller than the following (476 bytes).
#!/bin/sh
cat << PASCAL
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
1 10 45 120 210 252 210 120 45 10 1
1 11 55 165 330 462 462 330 165 55 11 1
1 12 66 220 495 792 924 792 495 220 66 12 1
1 13 7
t****t
发帖数: 6806
2
这是啥, 只有更短, 没有最短?

【在 c*****t 的大作中提到】
: 发信人: coconut (可可), 信区: Unix
: 标 题: easy problem
: 发信站: The unknown SPACE (Tue Jun 6 05:42:09 2000), 站内信件
: Use perl/sh or whatever language of your choice to write
: a program that is smaller than the following (476 bytes).
: #!/bin/sh
: cat << PASCAL
: 1
: 1 1
: 1 2 1

c*****t
发帖数: 1879
3
en

【在 t****t 的大作中提到】
: 这是啥, 只有更短, 没有最短?
w****i
发帖数: 964
4
#!/usr/bin/python
x= [1]
for i in range(16):
....for j in x+['\n']: print j,
....x = [(x+[0])[j]+([0]+x)[j] for j in range(i+2)]
t****t
发帖数: 6806
5
看我写个不一样, 用(read: abuse)RE写的
#!/usr/bin/perl
$a="1";
for $i (1.. 16) {
print "$a\n";
$a=~s/(\d+)(?= (\d+))/$1+$2/ge;
$a="1 $a";
}

【在 w****i 的大作中提到】
: #!/usr/bin/python
: x= [1]
: for i in range(16):
: ....for j in x+['\n']: print j,
: ....x = [(x+[0])[j]+([0]+x)[j] for j in range(i+2)]

c*****t
发帖数: 1879
6
有人写的比你少。。。说是能 54 byte (不算 #!/usr/bin/perl)

【在 t****t 的大作中提到】
: 看我写个不一样, 用(read: abuse)RE写的
: #!/usr/bin/perl
: $a="1";
: for $i (1.. 16) {
: print "$a\n";
: $a=~s/(\d+)(?= (\d+))/$1+$2/ge;
: $a="1 $a";
: }

t****t
发帖数: 6806
7
肯定有, 我是随便写的.

【在 c*****t 的大作中提到】
: 有人写的比你少。。。说是能 54 byte (不算 #!/usr/bin/perl)
t****t
发帖数: 6806
8
来, 再随便改一下, 第二行宽66
#!/usr/bin/perl
$_="1\n";for$i(1..16){print;s/(\d+)(?= (\d+))/$1+$2/ge;$_="1 $_";}

【在 t****t 的大作中提到】
: 肯定有, 我是随便写的.
h*********o
发帖数: 62
9
sub pascal {
while (s/\d+(?= (\d+))/$&+$1/eg < shift) { s/^/1 /; print; }
}
from my code collection. not mine. Do not know whom to credit to.
m******t
发帖数: 2416
10
Well, here's in 58 ruby bytes:
s=[];16.times{t,l=[],0;s.each{|n|t<
相关主题
小孩子学哪种编程语言比较好?现在还鼓吹学c++好的,心理绝对阴暗之极。
如何自学python易写性,易维护和执行效率综合来看
有码工的地方就有是非啊谭浩强的c c++程序设计对初学者危害有多大
进入Programming版参与讨论
h***z
发帖数: 233
11
33 bytes in Matlab is enough:
L=1
for i=1:15
L=[0,L]+[L,0]
end
w****i
发帖数: 964
12
This does not produce the exact output

【在 h***z 的大作中提到】
: 33 bytes in Matlab is enough:
: L=1
: for i=1:15
: L=[0,L]+[L,0]
: end

r****t
发帖数: 10904
13
after u: (in python, but without imports, 有import 肯定不行了)
from numpy import array as a
from numpy import r_ as r
L=a([1])
for i in range(1,16):
....L=r[0,L]+r[L,0]
....print L
每行多俩[ ], 格式还不太对。。

【在 h***z 的大作中提到】
: 33 bytes in Matlab is enough:
: L=1
: for i=1:15
: L=[0,L]+[L,0]
: end

l***8
发帖数: 149
14
80 bytes written in C :-)
main(x,y,z){for(y=z=x;x<17;(z=z*--x/y++)||(puts(&z),x=y,y=++z))printf("%d ",z);}
l***8
发帖数: 149
15
大家琢磨一下吧,我猜perl/python不用数组可能可以做到更短。反正用C语言声明数组
再加二重循环肯定搞不到80字符一下……
c*****t
发帖数: 1879
16
quote xiangqi's solution (see Unix board JHQ):
print "@_\n" while(@_=(1, map$_[$_-1]+$_[$_], 1..@_)) < 16;
60 bytes:) and sure it can be shrinked to 54 bytes:)

【在 l***8 的大作中提到】
: 大家琢磨一下吧,我猜perl/python不用数组可能可以做到更短。反正用C语言声明数组
: 再加二重循环肯定搞不到80字符一下……

t****t
发帖数: 6806
17
hailongniao的思路跟我的是基本一样的, 我参考他的改了改.
$_="\n";while(s/\d+(?= (\d*))/$&+$1/ge<16){s/^/1 /;print}
57 bytes.

【在 c*****t 的大作中提到】
: quote xiangqi's solution (see Unix board JHQ):
: print "@_\n" while(@_=(1, map$_[$_-1]+$_[$_], 1..@_)) < 16;
: 60 bytes:) and sure it can be shrinked to 54 bytes:)

c*****t
发帖数: 1879
18
They all look like corrupted bytes transferred from modem to me.

【在 t****t 的大作中提到】
: hailongniao的思路跟我的是基本一样的, 我参考他的改了改.
: $_="\n";while(s/\d+(?= (\d*))/$&+$1/ge<16){s/^/1 /;print}
: 57 bytes.

t****t
发帖数: 6806
19
xiangqi明显是高手, 他的去掉空格是52...
print"@a\n"while(@a=(1,map$a[$_-1]+$a[$_],1..@a))<16

【在 c*****t 的大作中提到】
: They all look like corrupted bytes transferred from modem to me.
r****t
发帖数: 10904
20
Even the Matlab and python version?

【在 c*****t 的大作中提到】
: They all look like corrupted bytes transferred from modem to me.
t****t
发帖数: 6806
21
matlab要格式也可以
L=1;for i=1:16,disp(sprintf('%d ',L));L=[0,L]+[L,0];end
55 bytes. that is, if you don't count the trailing " " of each line...

【在 w****i 的大作中提到】
: This does not produce the exact output
1 (共1页)
进入Programming版参与讨论
相关主题
请教几个汇编语言的问题[合集] Java不适合于作为主要编程教学语言by孟岩
会Python就可以当码工了?小孩子学哪种编程语言比较好?
语言区别如何自学python
问题:如何打开搜索二进制文件 (转载)有码工的地方就有是非啊
how to print 2 exponential digits in windows by using Perl现在还鼓吹学c++好的,心理绝对阴暗之极。
C语言一个passing variable的问题易写性,易维护和执行效率综合来看
perl sprintf question converting dec to hex谭浩强的c c++程序设计对初学者危害有多大
Perl Q: how to convert integer to MAC addressC语言里的<<=是什么意思?
相关话题的讨论汇总
话题: bytes话题: coconut话题: print话题: easy话题: problem