“编写”一个简单的计算器而无需编写任何代码


25

这很简单:

创建程序时无需编写任何代码。该代码只能包含现有的堆栈溢出问题和解答。

该程序应创建两个随机数并输出数字

  • 添加到,
  • 从中减去
  • 与和相乘
  • 除以

彼此。

规则

您必须包含指向您在答案中使用的问题/答案的链接。您不能修改找到的代码,但以下情况除外:

  1. 您可以重命名变量,函数和方法。(这并不意味着您可以更改方法调用,方法是将scanner.nextInt()更改为scanner.nextLine()并声明您正在更改方法名称。更改必须在定义或引用中进行。同一实体。)。如果将变量,函数或方法再次重命名,则该解决方案仍应起作用。

  2. 您可以适当地调整缩进。

  3. 您可以假定已加载适当的模块以使代码段正常工作。(例如,用于Java和Python的import语句,使用用于C#和C ++的语句,以及所有语言的等效语句)如果代码段中包含适合您的导入,则可以将其移至代码顶部。

  4. 如果语言要求代码在某种方法体内执行(例如,public static void main(String[] args)对于Java,static int Main(string[] args)对于C#等),则可以将代码包装在适当的方法中。但是该主要方法的内容必须保持不变。

  5. 您必须提供所执行的任何变量/方法/函数/类重命名的明确列表。

  6. 您不能摘录摘录(意味着,如果您从帖子中摘取代码块,则就算了全部),请简要说明代码对不熟悉您所使用语言的人的作用。您必须使用此挑战开始之前发布的摘要。

人气比赛,所以最投票获胜!

最后期限

我将接受在8月6日左右投票最多的意见书。


迈克尔,您好,欢迎来到PPCG堆栈交换!此站点上进行代码挑战的规则之一是,它们必须具有客观的获胜条件,因此您应该为此选择一个条件。是一个类似的挑战,可能会给您一些想法。
isaacg

嗨@isaacg,谢谢。我会看一看,然后删除/编辑这个。
克里斯·培根

@isaacg,希望现在还可以。您在这里比我更有经验,最后期限是否太近/太远?
克里斯·培根

好多了 截止日期太近了,但是标准时间大约是1-2周。
isaacg 2015年

好的,再次感谢。
克里斯·培根

Answers:


17

J,7个问题/答案,与J无关

echo a%b[echo a*b[echo a-b[echo a+b[b=:?2147483647 [a=:?2147483647

这是一种非常便宜的方式,我不会说谎。这是我使用的SO答案:

我在代码中将变量重命名fooab


我想在APL中采用这种方法会困难得多,但是仍然有很大的机会自行找到代码块中的字符。
JohnE

1
@JohnE这就是ASCII噪声的优点!
致命

1
我喜欢这个答案,但问题是“您不能摘录摘录”-这是在做什么,对吗?
2015年

3
@unclemeat“如果您从帖子中获取代码块,那么您将整个拿走​​”。对我来说,听起来好像帖子中有多个代码块,您只能使用一个,但不能参与一个代码块。
致命

所有这些都来自完整的代码块-查看源代码。
肖恩·拉瑟姆

7

Python 2中,7名 6的引用

创建此解决方案并不像看起来那样容易。在堆栈溢出中搜索特定代码非常困难,因为搜索中不包括符号。

我找到了一种方法来处理2000位随机数,并使用其他答案代替Ref#1,但是我无法在我使用的在线环境中对其进行测试,因为它涉及到getrandbits,它os.urandom会给我一个NotImplementedError,所以我就这样走了 现在可以与TIO一起实际使用。

在线尝试

#assumed to be loaded
import random

n1 = []
n1.append(random.randint(1, 100))

n2 = []
n2.append(random.randint(1, 100))

r1 = map(sum, zip(n1, n2))
r2 = map(lambda t: t[0] - t[1] ,zip(n1, n2))

ab = [n1[i]*n2[i] for i in range(len(n1))]

r1, last = r1[0], r1[-1]
r2, last = r2[0], r2[-1]
ab, last = ab[0], ab[-1]
n2, last = n2[0], n2[-1]

print r1
print r2
print ab
ab = float(ab) / n2
ab = float(ab) / n2
print ab

参考文献

import random 假定已加载,因为问题是允许的。

  1. lst = []lst.append(random.randint(1, 100))- 这里

  2. map(sum, zip(r1, r2))map(lambda t: t[0] - t[1] ,zip(r1, r2))r1,和r2- 在这里

  3. result = float(a) / b- 这里

  4. ab = [a[i]*b[i] for i in range(len(a))]- 这里

  5. first, last = some_list[0], some_list[-1]- 这里

  6. print x- 这里

更名

  1. lst重命名为n1n2(参考编号1:我两次使用了整个代码)

  2. r1,并将其r2重命名为n1n2(参考文献2:不过,我稍后使用了单独的变量来分配地图并在最后一次打印中进行划分,因为答案中包括了这些地图。)

  3. resulta重命名为ab,和b重命名为n2(参考#3)

  4. ab重命名为n1n2(参考#4)

  5. firstsome_list这两个重新命名r1r2ab,或n2,这取决于线。(参考编号5:我使用了四次。请注意,仅使用了第一个作业,因此我不重命名last

  6. x被重命名为r1r2ab,具体取决于哪一行。(参考编号6)


1

小数,2个引用

82D82D00D30001D30041D301212010D301200D30001D30042D301212010D301200D30001D30043D301212010D301200D30001D30044D30122

使用的命令:

  • 0 SET(默认堆栈索引)
  • 1
    • 2 焦炭
  • 2 流行音乐
  • 3 输入输出
    • 00 重复堆栈
    • 01 从堆栈到STDOUT
  • 4 数学
    • 1
    • 2 减去
    • 3
    • 4 划分
  • 8 建造
    • 2 将随机整数压入堆栈

解释版本:

82D       ; push random INT    - stack contains {r1}
82D       ; push random INT    - stack contains {r1, r2}

00D300    ; duplicate stack[0] - stack contains {r1, r2, r1}
01D300    ; duplicate stack[1] - stack contains {r1, r2, r1, r2}
41D       ; math +             - stack contains {r1, r2, r1+r2}
301       ; print from stack to output
2         ; pop                - stack contains {r1, r2}

12010D3012; print newline

00D300    ; duplicate stack[0] - stack contains {r1, r2, r1}
01D300    ; duplicate stack[1] - stack contains {r1, r2, r1, r2}
42D       ; math -             - stack contains {r1, r2, r1-r2}
301       ; print from stack to output
2         ; pop                - stack contains {r1, r2}

12010D3012; print newline

00D300    ; duplicate stack[0] - stack contains {r1, r2, r1}
01D300    ; duplicate stack[1] - stack contains {r1, r2, r1, r2}
43D       ; math *             - stack contains {r1, r2, r1*r2}
301       ; print from stack to output
2         ;                    - stack contains {r1, r2}

12010D3012; print newline

00D300    ; duplicate stack[0] - stack contains {r1, r2, r1}
01D300    ; duplicate stack[1] - stack contains {r1, r2, r1, r2}
44D       ; math /             - stack contains {r1, r2, r1/r2}
301       ; print from stack to output

资料来源:

在线尝试!如果未自动禁用输出缓存,则需要将其禁用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.