编写一个执行阶乘计算一步的程序,然后生成(quine)一个新程序,并在新程序中执行剩下的进程--种子和派生程序将有一个变量n作为要计算的阶乘,m用于累加器。
我不在乎你是用脚本语言还是编译语言。您可以使用“读取源文件”的欺骗。您必须创建一个新文件并运行新文件才能限定:不允许自修改代码或使用内存中加载的代码,但是在JS中使用data:
url生成是允许的。
以下是Java中的一个示例:https://gist.github.com/968033
最短代码获胜。
发布于 2011-05-12 14:24:17
g=document.location;if(s=g.search.split(",")[1]){
n=s.split(":");i=n[1];n=n[0];i*=--n;
n==1?alert(i):g.search="?a=,"+n+":"+i}
else{n=prompt();g.search="?a=,"+n+":"+n}
这将使用查询字符串传递值并刷新页面。
发布于 2011-05-12 15:34:28
它不是很短,但它确实在命令行上使用了它的论点。
n,m=0,1
from sys import*
a,f=argv,file
_,n=a[0],len(a)>1and n<1and int(a[1])or n
if n>1:x=f(_).readlines();x[0]='n,m=%s\n'%`n-1,m*n`;f(_,'w').write(''.join(x));exec f(_).read()
else:print m
https://codegolf.stackexchange.com/questions/2555
复制相似问题