Language agnostic 简单的编程实践(嘶嘶作响、打印素数)

Language agnostic 简单的编程实践(嘶嘶作响、打印素数),language-agnostic,Language Agnostic,我想练习我的技能,而不是使用键盘(即笔和纸),我想练习一些简单的问题,比如嘶嘶嗡嗡声,打印前N个素数 你最喜欢的简单编程问题是什么?问题: 在数字123456789之间的任意位置插入+或-符号,使表达式的计算结果为100。条件是数字的顺序不得更改 e、 例:1+2+3-4+5+6+78+9=100 编程问题: 用你最喜欢的语言编写一个程序,输出上述问题的所有可能的解决方案。Hannoi的Towers非常适合递归实践 我还将搜索一些编程面试问题示例 Steve Yegge的文章中有一些简单ish编

我想练习我的技能,而不是使用键盘(即笔和纸),我想练习一些简单的问题,比如嘶嘶嗡嗡声,打印前N个素数

你最喜欢的简单编程问题是什么?

问题: 在数字123456789之间的任意位置插入+或-符号,使表达式的计算结果为100。条件是数字的顺序不得更改

e、 例:1+2+3-4+5+6+78+9=100

编程问题:
用你最喜欢的语言编写一个程序,输出上述问题的所有可能的解决方案。

Hannoi的Towers非常适合递归实践


我还将搜索一些编程面试问题示例

Steve Yegge的文章中有一些简单ish编程问题的好例子(第一部分:编码)。我发现这些都是非常好的笔和纸上做。此外,同一篇文章中OOP设计下的问题可以用笔和纸(甚至在你的头脑中)完成,我认为,这是一个很好的练习。

许多竞争性编程的在线网站都充满了示例问题/挑战,按“难度”排序。我认为,“算法”问题中比较简单的类别通常适合你

例如,请查看(算法部分)

除此之外,还有2个样本:

  • 平面上的N个点的列表由它们的坐标(x_i,y_i)和数字R>0给出。输出半径为R的磁盘可以同时覆盖的N个给定点中的最大数(对于额外点:复杂度?)

  • 您将得到一个由N个数字组成的数组a1到an,并且您希望计算
    a1*a2*..*i的所有值的/ai
    (因此输出也是N个元素的数组),而不使用除法。提供一个(非朴素的)方法(复杂性应为O(N)乘法)


  • 我一直在研究

    我也喜欢欧拉项目,但我想指出的是,这些问题很快就会变得非常棘手。在前20个左右的问题之后,它们开始成为大多数人在一个半小时内无法解决的问题。另一个问题是,他们中的许多人处理的数学问题都是非常大的数字,而这些数字不适合标准整数甚至长变量类型

    如果你想要笔和纸之类的练习,我建议你多做设计而不是编码

    实际上,用纸编码很糟糕,它让你几乎什么也学不到。工作环境确实很重要,所以在计算机上打字、编译、查看所犯的错误、到处使用重构,都无法与在一张纸上所能做的相比,因此,在一张纸上所能做的相比,虽然做一个有趣的脑力练习是不实际的,但它不会大大提高您的编码技能

    另一方面,您可以在论文中手工设计中等甚至复杂应用程序的体系结构。事实上,我经常这样做。工程工具(如企业架构师)还不足以取代良好的全手工图表

    好的项目可能是,你将如何设计一个游戏引擎?类、线程、存储、物理、包含所有内容的数据结构等等。你会如何启动搜索引擎?你将如何设计一个模式识别系统

    我发现这类问题比你能做的任何书面编码都更有意义