Questions tagged «arithmetic»

与基本算术有关的挑战。

30
如果AB在AB A中,那么是B?
给定两个整数A和B,如果AB(A减去B)在AB(A到B)中,则输出A,否则输出B。 “ A减B”是标准减法。 “ A到B”是从A到B的整数范围,包括A和B。例如: 1 to 4: 1, 2, 3, 4 -2 to 5: -2, -1, 0, 1, 2, 3, 4, 5 3 to -1: 3, 2, 1, 0, -1 7 to 7: 7 以字节为单位的最短代码获胜。 测试用例 A B Output 1 4 4 -2 5 5 3 -1 -1 7 …

30
递增数组
给定一个非空的正整数数组,对其进行“递增”一次,如下所示: 如果所有数组元素均相等,1则将a附加到数组末尾。例如: [1] -> [1, 1] [2] -> [2, 1] [1, 1] -> [1, 1, 1] [3, 3, 3, 3, 3] -> [3, 3, 3, 3, 3, 1] 否则,增加数组中的第一个元素,即数组的最小值。例如: [1, 2] -> [2, 2] [2, 1] -> [2, 2] [3, 1, 1] -> [3, 2, 1] -> [3, 2, 2] …

30
是的,我当然是成年人!
我认为我们都是从小就做的:有些网站要求的最低年龄为18岁,因此我们只从出生年份和年龄中减去几年,我们就是18岁以上。 此外,对于大多数游乐园游乐设施而言,进入的最低高度为1.40米(至少在荷兰是这样)。当然,这可能比年龄更不容易被骗,但是您可以穿高跟鞋,穿高跟鞋,戴上帽子,站在脚趾上,等等。 输入: 您的程序/函数接受正整数或十进制。 输出: 输入是整数>= 18吗?只需打印输入。 输入是整数0-17吗?打印18。 输入的数字是小数>= 1.4吗?只需打印输入。 输入的数字是小数0.0-1.4吗?打印1.4。 挑战规则: 假设输入将始终在0-122(年龄最大的女人是122)或0.0-2.72(年龄最大的男人是2.72)的范围内。 您可以将输入作为字符串,对象或您喜欢的其他任何形式。 小数点输入在小数点后最多不能超过三个小数位。 2或2.两者都不是的有效输出2.0。您可以自由输出,2.00或者2.000代替2.0。 就像输入一样,输出在该点之后永远不会超过三个小数位。 通用规则: 这是代码高尔夫球,因此最短答案以字节为单位。 不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能短的答案。 标准规则适用于您的答案,因此允许您使用STDIN / STDOUT,具有正确参数的函数/方法,完整程序。您的来电。 默认漏洞是禁止的。 如果可能,请为您的代码添加一个带有测试的链接。 另外,如有必要,请添加说明。 测试用例: 0 -> 18 1 -> 18 2 -> 18 12 -> 18 18 -> 18 43 -> 43 115 -> 115 122 -> …

30
数学教学武器
上一次,当我试图提出一些并非重复的简单尝试时,结果却变得太难了。所以希望这次,确实是新手也可以尝试的尝试。 输入: 具有整数/小数的数组/列表。(或一个表示整数/小数的数组的字符串。) 输出: 遍历数字并按以下顺序应用以下五个数学操作数: 加法(+); 减法(−); 乘法(*或×或·); 实数/计算器部(/或÷); 取幂(^或**)。 (注意:括号中的符号只是为了说明而添加。如果您的编程语言对数学运算使用的符号与示例所使用的符号完全不同,那么这当然是完全可以接受的。) 继续进行操作,直到到达列表的末尾,然后给出总和的结果。 挑战规则: 用0(n ^ 0)求幂应该得到1(这也适用于0 ^ 0 = 1)。 没有用0(n / 0)除的测试用例,因此您不必担心这种边缘情况。 如果数组仅包含一个数字,则将其作为结果返回。 通用规则: 这是代码高尔夫球,因此最短答案以字节为单位。 不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能简短的答案。 标准规则适用于您的答案,因此允许您使用STDIN / STDOUT,具有正确参数的函数/方法,完整程序。您的来电。 默认漏洞是禁止的。 如果可能的话,请添加一个带有测试代码的链接。 测试用例: [1,2,3,4,5] -> 0 -> 1 + 2 = 3 -> 3 - 3 = 0 -> 0 …

30
加两个数字
输入:两个整数。优选地,十进制整数,但是可以使用其他形式的数字。这些可以在标准输入中作为程序或函数的参数或列表形式提供给代码。 输出:它们的总和。对于输出整数,请使用与输入整数相同的格式。例如,输入5 16将导致输出21。 限制:请没有标准漏洞。这是代码高尔夫球,以最少的字节数获胜。 注意:这应该是微不足道的,但是我很想知道如何实现它。答案可以是完整的程序或功能,但请确定是哪个程序。 测试用例: 1 2 -> 3 14 15 -> 29 7 9 -> 16 -1 8 -> 7 8 -9 -> -1 -8 -9 -> -17 或作为CSV: a,b,c 1,2,3 14,15,29 7,9,16 -1,8,7 8,-9,-1 -8,-9,-17 排行榜 显示代码段 var QUESTION_ID=84260,OVERRIDE_USER=8478;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var …

4
乘以受限操作
击败目前最好的答案有500名非官方赏金。 目标 您的目标是仅使用一组非常有限的算术运算和变量赋值将两个数相乘。 加成 x,y -> x+y 倒数x -> 1/x(非除法x,y -> x/y) 求反x -> -x(不是减法x,y -> x-y,尽管您可以通过两个操作来完成x + (-y)) 常数1(不允许其他常数,除非由的操作产生1) 变量分配 [variable] = [expression] 评分:值以变量a和开始b。您的目标是使用尽可能少的操作将其产品保存a*b到变量中c。每个操作和分配都+, -, /, =花费一个点(等效地,每次使用(1),(2),(3)或(4))。常量1是免费的。最少的解决方案获胜。Tiebreak是最早的帖子。 允许:您的表达式必须在算术上对“随机”实数a和正确b。它可能在R 2的零测量子集上失败,即,如果在a- b笛卡尔平面中绘制,则该集合没有面积。(由于0类似的表达式的倒数,可能需要这样做1/a。) 语法: 这是一个原子代码高尔夫。不得使用其他操作。特别是,这意味着没有函数,条件,循环或非数字数据类型。这是允许的操作的语法(可能性用分隔|)。程序是<statement>s 的序列,其中a <statement>如下所示。 <statement>: <variable> = <expr> <variable>: a | b | c | [string of letters of …

19
我的馅饼被平分了吗?
编写一个包含正整数的非空列表的程序或函数。您可能会假设它是以合理方便的格式输入的,例如"1 2 3 4"或[1, 2, 3, 4]。 输入列表中的数字表示完整饼图的切片,其中每个切片的大小与其对应的数字成比例,并且所有切片均按给定的顺序排列在图表周围。 例如,饼图为1 2 3 4: 您的代码必须回答的问题是:饼图是否一分为二?也就是说,从圆的一侧到另一侧是否存在一条完美的直线,将其对称地一分为二? 你需要输出truthy值,如果有至少一个平分线和输出falsy如果有没有价值。 在该1 2 3 4示例中,之间有一个等分线4 1,2 3因此输出将是真实的。 但是对于输入而言1 2 3 4 5,没有平分线,因此输出将是虚假的: 其他例子 以其他方式排列数字可能会消除等分线。 例如2 1 3 4→虚假: 如果输入列表中只有一个数字,则饼图不会一分为二。 例如10→虚假: 可能有多个平分线。只要大于零,输出就是真实的。 例如6 6 12 12 12 11 1 12→真实:(这里有3个等分线) 即使平分在视觉上不明显,也可能存在。 例如1000000 1000001→虚假: 例如1000000 1000001 1→真实: (感谢nces.ed.gov生成饼图。) 测试用例 …
43 code-golf  math  arithmetic  combinatorics  decision-problem  code-golf  sequence  number-theory  binary  code-golf  number-theory  set-theory  code-golf  hashing  code-golf  game  card-games  code-golf  ascii-art  code-golf  arithmetic  array-manipulation  jelly  code-golf  string  array-manipulation  code-golf  sorting  code-challenge  code-golf  number  date  binary  code-golf  arithmetic  code-golf  math  number  linear-algebra  polynomials  code-golf  ascii-art  code-golf  grid  decision-problem  code-golf  string  combinatorics  code-golf  string  kolmogorov-complexity  arithmetic  date  code-golf  number  data-structures  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation 

27
告诉我最近的恶魔
恶魔数字是一个正整数,其十进制表示形式仅包含6。恶魔数字列表以6、66、666、6666开头。 给定正整数,输出最接近的恶魔数字。如果有两个,则输出较大的一个。 测试用例: n output 1 6 2 6 3 6 6 6 35 6 36 66 37 66 100 66 365 66 366 666 666 666 999 666 这是代码高尔夫球。以字节为单位的最短答案将获胜。

30
StringgnirtSStringgnirtSStringgnirtS
这对您来说是一个相对简单的挑战。 给定长度为N的字符串,向前输出该字符串,然后向后输出,然后向前,然后向后输出……等等。N次。例如,如果您输入的是 Hello! 您应该输出: Hello!!olleHHello!!olleHHello!!olleH 您也可以选择输出一个尾随换行符。 您的提交可以是完整程序,也可以是函数,并且您可以采用任何合理的格式进行输入和输出。例如,您可以从STDIN / STDOUT中获取IO,从函数中获取参数,并从文件中获取返回值,等等。您可以放心地假设输入字符串将不会为空,并且仅包含可打印的ASCII。您必须在一行上输出新字符串。因此,例如,如果最后一个示例的输出是 Hello! !olleH Hello! !olleH Hello! !olleH 这不是有效的解决方案! 这里是更多测试用例: Input: a Output: a Input: abcd Output: abcddcbaabcddcba Input: OK! Output: OK!!KOOK! Input: 4815162342 Output: 4815162342243261518448151623422432615184481516234224326151844815162342243261518448151623422432615184 Input: PPCG Output: PPCGGCPPPPCGGCPP Input: 42 Output: 4224 排行榜 由于这是一个代码高尔夫挑战,因此禁止了标准漏洞,以字节为单位的最短答案胜出!但是,这也是在任何特定语言中答案最短的竞赛。尽管Java答案不太可能会击败perl或某些打高尔夫球语言的答案,但拥有最短的Java答案仍然令人印象深刻。因此,您可以使用此页首横幅查看 所有语言中最短的答案,以及 每种语言的最短答案。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 # Language Name, N …
42 code-golf  string  code-golf  math  geometry  data-structures  repeated-transformation  code-golf  number  random  code-golf  math  rational-numbers  code-golf  ascii-art  animation  code-golf  ascii-art  number  code-golf  math  number  code-golf  data-structures  code-golf  string  parsing  code-golf  array-manipulation  random  permutations  code-golf  string  code-golf  parsing  code-golf  string  quine  code-golf  string  parsing  comment  code-golf  string  counting  natural-language  code-golf  string  decision-problem  code-golf  math  code-challenge  metagolf  test-battery  code-golf  string  code-golf  math  number  arithmetic  source-layout  code-golf  number  primes  decision-problem  code-golf  math  arithmetic  code-golf  date  code-golf  string  cryptography  code-golf  code-golf  chess  board-game  code-golf  geometry  grid  puzzle-solver  set-partitions  code-golf  number  natural-language  code-golf  ascii-art  code-golf  math  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  string  natural-language  code-golf  game  board-game  tic-tac-toe  code-golf  ascii-art  hexagonal-grid  code-golf  string  comment  code-golf  internet  code-golf  sorting  code-golf  kolmogorov-complexity  unicode  code-golf  tips  code-golf  string  natural-language  code-golf  string  kolmogorov-complexity  source-layout  hello-world  code-golf  string  kolmogorov-complexity  counting  natural-language  code-golf  random  quine  code-golf  string  math  bitwise  code-golf  permutations  code-golf  string  code-golf  arithmetic 

16
使用xkcd的公式来近似世界人口
在XKCD 1047,兰德尔罗列出“稍微错”什锦数量和数字的具有不同精确度和复杂度的近似,诸如升的在一加仑的数量非常接近3 + π / 4。在漫画的中间,他进行了一段间歇:一种根据给定年份估算世界(和美国)人口的方法。 (摘自xkcd: Randall Munroe的近似值) 您的任务是编写一个实现这些公式的程序,以近似当前的世界和美国人口,方法如下。 世界人口 取当年的最后两位数字。 减去自2005年卡特里娜飓风以来的of年数(包括当年)。为此,任何可被4整除的年份都被视为a年。 在两个数字之间添加一个小数点(与除以10相同)。 加6。这使数十亿人受益。 美国人口 取当年的最后两位数字。 减10。 乘以3。 加10。 开头加3(对于此挑战,某些数字将为负,因此加300)。不知何故,我没有注意到仅连接是行不通的,因为我用来生成结果的程序仅增加了300。 这使成千上万人受益。 细节 这个公式“应该保持十年或两年不变”,但是从理论上讲,您必须能够处理任何2000年至2039年(含)。在某些情况下,自卡特里娜飓风以来的the年将为负值或零值。 您可以自由地以任何方式简化公式,只要所有输出与下面的输出匹配即可。 对于年份,请根据计算机的时钟使用年份。它必须在明年和本世纪的任何其他年份工作,因此您不能简单地对2015年进行硬编码。为方便起见,您可能希望包括一种将年份指定为变量或输入以测试其他年份的方法。 输出应为近似的世界人口(十亿人),后跟一些定界符(例如空格或逗号),然后是美国人口(以百万计)。您也可以编写一个返回或打印字符串或数字或字符串数​​组的函数。 这是代码高尔夫,因此以字节为单位的最短代码获胜。Tiebreaker是最早的帖子。 测试用例 这是所有可能年份的列表,其后是两个输出。 Year World U.S. 2000 6.1 280 2001 6.2 283 2002 6.3 286 2003 6.4 289 2004 6.4 292 2005 6.5 …

8
填塞填塞-十二项任务鸣叫
您的老板刚刚通过电子邮件给您列出了他需要尽快完成的12个编程任务的列表。任务很简单,但是作为社交网络支持的年轻软件大亨,您的老板坚持认为,您的解决方案必须能够在单个Twitter微博中使用。 这意味着您只有140字节的代码可解决所有任务,平均每个任务11.67字节。(是的,Twitter 计算字符,但您的老板专门说了字节。) 您意识到无法解决140字节中的所有12个任务,但是您怀疑老板不会实际测试所有解决方案。因此,您可以继续解决尽可能多的任务,而完全跳过其中的一些任务。您的心态是,完成任务的哪个子集无关紧要,只重要的是子集尽可能大。 您可以完成多少个任务? 挑战 编写多达12个不同的程序,每个程序都能准确解决以下12个任务之一。这些程序的长度的累积总和不能超过140个字节 或者,您可以编写一个长度不超过140个字节的程序,该程序取1到12之间的整数,并且(理想情况下)继续解决相应的任务,并根据需要输入更多的信息。并非所有任务都需要工作,只有那些确实可以计入您的分数的任务才能工作。无效的任务将允许错误或执行其他任何操作。 在任何一种情况下,“程序”实际上都是将输入作为参数或对其进行提示并打印或返回输出的函数。因此,例如,您可以编写一个看起来像的140字节的函数f(taskNumber, taskInput),或者您可以为每个任务编写单独的代码段,其中一些作为函数,而某些则作为成熟的程序。 其他详情: 所有代码必须使用相同的语言编写。 像往常一样,输入应该来自stdin,命令行,函数参数或您的语言常用的东西。输出将输出到标准输出或您的语言最接近的替代版本,或以适当的类型返回。 合理数量的输入格式是可以的;例如,用引号引起来的字符串或\n代替实际的换行符。 输出应该完全是所要求的,没有多余的格式或空格。唯一的例外是尾随换行符。 仅在REPL环境中运行的代码不构成程序或功能。 您可能不会编写解决多个任务的多个程序。是一个程序(理想地)解决所有任务,或者是(理想地)12个程序分别解决一个任务。 未经原作者的署名,并且最好也获得许可,不允许发布您未编写或仅稍作修改的任务解决方案。如果您的答案主要是所有其他答案中最短的解决方案,则它应该是社区Wiki。 计分 完成最多任务的提交是获胜者。如果两个提交并列,则字节数最少的一个获胜。如果字节计数并列,则较早的提交将获胜。社区维基答案不允许获奖。 确保告诉我们您解决了哪些任务,而不仅仅是告诉我们! 非高尔夫球员的障碍: 这项挑战很可能将以高尔夫语言为主导。许多语言甚至可能无法解决140字节内的一两个任务。因此,您可以提交非竞争性答案,其限制为3条推文,即420字节。所有其他规则保持不变。 任务 任务1-三个数字可以形成三角形吗? 取三个正整数并输出一个true / falsy值,该值指示具有这些长度的三行是否可以形成三角形。您可能不认为数字按任何特定顺序排列。 真实的示例(每行一个): 20 82 63 1 1 1 2 3 4 1 2 2 虚假的例子: 6 4 10 171 5 4 1 1 …

30
这个数字是-2的整数次幂吗?
有很多聪明的方法来确定数字是否为2的幂。这不再是一个有趣的问题,因此让我们确定给定的整数是否为-2的整数次幂。例如: -2 => yes: (-2)¹ -1 => no 0 => no 1 => yes: (-2)⁰ 2 => no 3 => no 4 => yes: (-2)² 规则 您可以编写程序或函数,并使用接收输入和提供输出的任何标准方法。 您的输入是一个整数,如果该整数是-2的整数次幂,则输出必须是一个真实值,否则,则必须是一个虚假值。不允许其他输出(例如警告消息)。 通常的整数溢出规则适用:您的解决方案必须能够在语言的假设(或实际)版本中使用任意大整数,默认情况下,所有整数都是无界的,但是如果您的程序由于实现而在实践中失败不支持大整数,这不会使解决方案无效。 您可以使用任何编程语言,但是请注意,默认情况下,这些漏洞是禁止的。 获奖条件 这是一场代码高尔夫球比赛:字节数最少(在您选择的编码中)的答案是获胜者。

30
可以用(3 ^ x)-1格式写这个数字吗?
挑战: 创建一个接受正整数的程序,并检查它是否可以(3 ^ x)-1的形式编写,其中X是另一个正整数。 如果可以,输出X 如果不能,则输出-1或伪造的语句。 输入/输出示例 输入: 2 可以写成(3 ^ 1)-1,所以我们输出x就是1 输出: 1 输入: 26 26可以写成(3 ^ 3)-1,所以我们输出x(3) 输出: 3 输入: 1024 1024不能以​​(3 ^ x)-1的形式写入,因此我们输出-1 输出: -1 这是代码高尔夫球,因此最少的字节数获胜 相关OEIS:A024023

30
天哪,吉萨高尔夫!
“吉萨数”(俗称“ 蒂米数”)是指数字代表金字塔的任何数字(A134810)。例如,“ 12321”是一个吉萨数字,因为它可以像这样可视化: 3 2 2 1 1 但是,“ 123321”之类的字符不是吉萨币,因为金字塔的顶部有两位数字 33 2 2 1 1 换句话说,如果满足以下所有条件,则数字为吉萨数: 它的位数是奇数,中间的数字是最大的 它是回文的(相同的向前或向后读取),并且 数字的前半部分严格增加一个。(由于必须是回文,这意味着数字的后半部分必须严格减少一位) 您必须编写一个采用正整数作为输入的完整程序或函数,并确定它是否为吉萨数。您可以将输入作为字符串或数字。如果它是吉萨数,则输出真实值。否则,将产生虚假的值。 共有45个吉萨数字,因此这些输入中的任何一个都应产生真实值: 1 2 3 4 5 6 7 8 9 121 232 343 454 565 676 787 898 12321 23432 34543 45654 56765 67876 78987 1234321 2345432 3456543 4567654 5678765 …

30
最低限度的移动
受堆栈溢出问题的启发。这里的标题完全是我的错。 挑战 给定一个包含至少两个条目的正整数列表,请将每个数字替换为除自身以外的所有条目中的最小值。 测试用例 [4 3 2 5] -> [2 2 3 2] [4 2 2 5] -> [2 2 2 2] [6 3 5 5 8] -> [3 5 3 3 3] [7 1] -> [1 7] [9 9] -> [9 9] [9 8 9] -> [8 9 8] …

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.