Questions tagged «division»

对于涉及除法或整数除法的数学运算符的挑战

12
Divinacci序列
Divinacci(OEIS) 执行斐波那契数列,但不要使用: f(n) = f(n-1)+f(n-2) 使用: f(n) = sum(divisors(f(n-1))) + sum(divisors(f(n-2))) 对于输入n,输出第n个项,您的程序应该只有1个输入。 前14个字词(0索引,您可以1索引;使用的状态): 0 | 0 # Initial | [] 1 | 1 # Initial | [1] => 1 2 | 1 # [] + [1] | [1] => 1 3 | 2 # [1] + [1] | [1,2] => …

30
输入可除的最小回文
给定一个正整数N,输出最小的正整数,以使该数字是回文数(即它本身的逆数)并且可以被整除N。 回文(即输出)必须不需要前导零才能成为回文,例如080,不是的有效答案16。 由于先前的原因,输入将永远不会是10的倍数。 您的程序可能需要花费尽可能多的时间,即使在实践中输出答案的时间太长。 输入和输出 您可以通过接受输入STDIN,作为函数参数,或类似的东西。 您可以将输出打印到STDOUT,从函数返回它或类似的东西。 输入和输出必须以十进制为基础。 测试用例 N Output 1 1 2 2 16 272 17 272 42 252 111 111 302 87278 1234 28382 计分 这是代码高尔夫球,因此最短的答案以字节为单位。

15
推倒一些多米诺骨牌!
感谢这个问题的启发 在这个挑战,我们将代表一行多米诺骨牌作为串|,/和\。您将获得一串多米诺骨牌作为输入,并且必须确定它们安定后的样子。这是多米诺骨牌掉落的规则 |左下降的多米诺骨牌左侧的立式多米诺骨牌\也将变为左下降的多米诺骨牌。 |正确的多米诺骨牌的立式多米诺骨牌/也将变成正确的多米诺骨牌。 如果站立的多米诺骨牌介于左\下落的/多米诺骨牌和右下落的多米诺骨牌之间,它将保持站立状态。 重复应用这些规则,直到排列不再更改。 这是单个输入如何得出结论的示例 |||||||\/|||||||\||\|||/||||||\||||| ||||||\\//|||||\\|\\|||//||||\\||||| |||||\\\///|||\\\\\\|||///||\\\||||| ||||\\\\////|\\\\\\\|||////\\\\||||| |||\\\\\////|\\\\\\\|||////\\\\||||| ||\\\\\\////|\\\\\\\|||////\\\\||||| |\\\\\\\////|\\\\\\\|||////\\\\||||| \\\\\\\\////|\\\\\\\|||////\\\\||||| 您的任务是编写查找并输出输入最终结果的代码。您可以假定输入始终有效,并且至少包含2个字符。 这是代码高尔夫球,因此答案将以字节计分,而字节数越少越好。 测试用例 |||/|||| -> |||///// |||\|||| -> \\\\|||| |/||||\| -> |///\\\| ||/|||\| -> ||//|\\| ||\|||/| -> \\\|||//

30
除数的乘积
挑战 给定一个正整数,返回其除数(包括自身)的乘积。 这是OEIS中的序列A007955。 测试用例 1:1 2:2 3:3 4:8 5:5 6:36 7:7 8:64 9:27 10:100 12:1728 14:196 24:331776 25:125 28:21952 30:810000 计分 这是代码高尔夫球,因此每种语言中最短的答案将获胜!

30
求N的除数之和
编写一个程序,在屏幕上显示用户输入的1到N范围内的数字(1≤N≤100)的除数之和。 这是OEIS A000203。 例子: 输入 7 7 / 1 = 7 7 / 7 = 1 7 + 1 = 8 输出 8 输入 15 15 / 1 = 15 15 / 3 = 5 15 / 5 = 3 15 / 15 = 1 15 + 5 + 3 …

21
折叠整数以节省空间!
疯狂的数学家拥有大量的数字,因此他留下的空间非常有限。为了节省一些钱,他必须折叠整数,但是不幸的是他确实很懒。如果您想帮助他,您的任务是创建一个函数/程序,该函数可以折叠一个给定的正整数以表示我们的数字疯子。 如何折叠整数? 如果可以用位数之和均匀除以它,请用位数之和除。如果不满足该要求,则将其余数除以位数之和。重复该过程,直到达到结果1。折叠后的整数是您必须执行的操作数。让我们举个例子(例如1782): 获取其数字的总和:1 + 7 + 8 + 2 = 18。1782被整除18,所以下一个数字是1782 / 18 = 99。 99不能被整除9 + 9 = 18,因此我们取余数:99 % 18 = 9。 9显然可以被整除9,因此我们将其除以并得到1。 结果是3,因为要达到,需要3个操作1。 规则和规格 某些整数可能具有等于的数字总和1,例如10或100。您的程序无需处理此类情况。也就是说,您可以确保输入的整数不具有等于的数字总和1,并且使用给定整数进行的任何运算都不会导致数字的总和为1(1本身除外,即“目标”)。例如,您将永远不会收到10或20作为输入。 输入将是一个大于的正整数1。 默认漏洞适用。 您可以采用任何标准均值进行输入并提供输出。 测试用例 输入->输出 2-> 1 5-> 1 9-> 1 18-> 2 72-> 2 152790-> 2 152-> 3 666-> 3 …

30
适当的除数混搭
甲适当除数是一个除数的数的Ñ,这是不Ñ本身。例如,12的适当除数是1、2、3、4和6。 您将得到一个整数 X,X ≥2,X≤1000。您的任务是将2到x(含)的整数的所有最高适当除数求和(OEIS A280050)。 示例(带有x = 6): 找到2到6(含)之间的所有整数:2,3,4,5,6。 从所有数字中获取适当的除数,然后从每个数字中选择最高的除数: 2-> 1 3-> 1 4-> 1,2 5-> 1 6-> 1,2,3。 对最高除数进行求和:1 + 1 + 2 + 1 + 3 = 8。 最终结果是8。 测试用例 输入| 输出量 ------- + --------- | 2 | 1个 4 | 4 6 | 8 8 | …

12
最小素数和
SF(n)是一个函数,用于计算给定数字n的最小素数。 我们称T(N)为每个SF(n)的总和,其中2 <= n <=N。 T(1)= 0(总和超过0) T(2)= 2(2是第一个素数) T(3)= 5 = 2 + 3 T(4)= 7 = 2 + 3 + 2 T(5)= 12 = 2 + 3 + 2 + 5 ... T(10000)= 5786451 获胜者将是能够在我自己的笔记本电脑(东芝Satellite L845,Intel Core i5、8GB RAM)上在60秒内计算出最大T(N)的人。 Current top score: Nicolás Siplis - 3.6e13 points - …

19
MaxMin除数对(DMDP)的差异
让我们谈谈除数... 撇开完美的平方(片刻),所有正整数都可以表示为其2除数的乘积。快速示例126:这是的所有除数126 如您所见,所有除数可以配对。这就是我们所说的除数对: [1, 126], [2, 63], [3, 42], [6, 21], [7, 18], [9, 14] 对于此挑战,我们只需要此列表的最后一对(即图片的中心对) [9,14]:。我们将其称为MaxMin Divisor Pair。 的最大最小除数对的差分 (DMDP)是一对,其是两个元件的差[9,14]=5 为再举一个例子544。除数为: [1,2,4,8,16,17,32,34,68,136,272,544] 和DMDP(544)= 15 因为32-17=15 怎么样完全平方数?所有完美正方形的DMDP = 0 让我们64以除数 为例 {1,2,4,8,16,32,64} 正如你在这种情况下,看到了最大最小除数对是[8,8]具有DMDP=0 我们几乎完成.. 挑战 给定一个整数n>0,输出小于或等于多少个整数 10000,DMDP小于 n 测试用例 输入->输出 1->100 (those are all the perfect squares) 5->492 13->1201 369->6175 …

14
总和链序列
顺序: 我们从开始1。 我们首先将当前的1索引值添加到序列中的前一个数字。 然后,如果它们适用于此当前值,则按顺序应用以下数学运算: 可除以2?=>加法 可除以3?=>减法 可除以4?=>(加和)相乘 不是没有除尽2,3也没有4?->继续当前的总和结果 输出: 按以下顺序输出前100个数字: 1, 1, 21, 25, 30, 216, 223, 223, 2169, 2179, 2190, 2202, 2215, 2215, 2245, 2261, 2295, 2295, 2333, 2353, 2395, 2417, 56649, 56649, 56699, 56725, 1533033, 1533061, 1533090, 45993600, 45993631, 45993631, 1517792001, 1517792035, 1517792070, 1517792106, 1517792143, 1517792143, 1517792221, 1517792261, …

4
使用ASCII艺术图可视化长除法
编写一个程序,以可视化方式用ASCII艺术进行长除法。使用您选择的输入格式,输入由两个整数组成:分子和分母。 例子: 1234÷56: 22 ---- 56|1234 112 --- 114 112 --- 2 1002012÷12: 83501 ------- 12|1002012 96 --- 42 36 -- 60 60 -- 12 12 -- 0÷35 0 - 35|0 规则: 编程语言的除法运算符的用途是允许的。 也允许使用大整数支持。 为了保持一致: 如果商为零,则在跳水板的末端打印一个零。 如果余数为零,请不要打印。 不要在任何数字上打印前导零。 末尾多余的换行符和右边的尾随空格是允许的。 字符最少的解决方案获胜。 限制: 0 <=分子<= 10 72 - 1 1 <=分母<= 9999999 …

22
除数不多的除法
写一个程序或函数,它在正整数a,b并c,并打印或返回a/b到c小数位,使用操作+ - * /%[加,减,乘,除,调制]在正整数:您可以使用所有您的语言允许,但不能使用浮点数。a,b,c的范围将是您语言中无符号整数所允许的范围。数字结果将被截断为最后一个要打印的数字(所以没有round)。 这意味着,如果您的语言没有整数类型(仅浮点数),则可以通过将这些浮点数仅用作正整数来参与。本练习的线索是编写仅在[无符号]整数上使用+-* /%运算来找到浮点数中的数字的函数。 例子 print(1,2,1) 会打印 0.5 print(1,2,2) 会打印 0.50 print(13,7,27) 会打印 1.857142857142857142857142857 print(2,3,1) 会打印 0.6 print(4,5,7) 会打印 0.8000000 print(4,5,1) 会打印 0.8 print(9999,23,1) 会打印 434.7 print(12345613,2321,89) 如果您的语言具有32位未签名,将打印 5319.09220163722533390779836277466609220163722533390779836277466609220163722533390779836277466 以字节为单位的最短代码获胜。如果这看起来不清楚,我很抱歉。测试一些与建议不同的输入。

4
用C(N)位计算A(N)/ B(N)
考虑三个数字序列A,B和C: A:一个基于递归关系的序列f(n) = f(n-1)+f(n-2),以开头f(1) = 3, f(2) = 4。因此,序列开始如下:3 4 7 11 18 29 47 76 ... B:组合数字,即不是质数(或1)的所有整数:4 6 8 9 10 12 14 15 16 ... C:Pi的数字: 3 1 4 1 5 9 2 6 5 ... 给定正整数N < 50(作为函数参数或STDIN),返回小数点的十进制值,其小数点后A(N)/B(N)有C(N)数字。适用四舍五入的常规规则(如果第N + 1个数字为5或更高,则四舍五入)。如果第N位数字pi为零,则应打印一个整数。科学计数法/标准格式适用于大于1000的数字。 这是代码高尔夫,所以最短的答案以字节为单位。 一些例子: N = 1: 0.750 N …

9
实现任意精度划分
实现一个函数divide(int a, int b, int c),以输出以10为底的值a/b。而不使用任何浮点数学或BigInteger/ BigDecimal或等效库。除下面第4点中的(可能的)例外外,至少必须打印c一组正确的字符0123456789.。 a和b可以是任何的32个整数。更新:如果打高尔夫球的目的,你想有输入是64个原语是好的,但你并不需要支持数据的全部64位范围。 如果不是,则无需检查是否c为正(尽管希望您的程序不会崩溃)。 的最小支持上限c是500。如果您的程序不支持c上述值可以500,但是也可以。 对于均分的数字,是选择打印额外的零(基于的值c)还是不打印任何内容。 您不需要使用该函数就可以执行任何其他任务,唯一的目标是打印。 对于之间的数字-1和1,这是你的选择是否打印的领先0。但是,这是唯一可以接受打印前导零的情况,并且您只能打印一个这样的零。 您可以使用最后一个小数位所需的舍入/下限/ ceil逻辑。 对于否定答案,您必须打印前导-。这不计入c。然而,这是你的选择,如果你想打印,+或者没有一个肯定的回答。 整数除法和整数模数均允许。但是,请记住,除非您选择实现自己的BigInteger/ BigDecimal库(取决于代码长度),否则您仅限于基元。 尽管您可以,但是您不需要处理bbeing 0。如果b=0,您的程序可能会进入无限循环或崩溃,并且不会受到处罚。 每个注释的规则略有更改。为确保公平竞争,a并且b确保且保证为32位整数,可以使用64位长的整数。如果您选择的语言作为基本语言超出了64位整数,则您在任何时候都不能使用该功能(假装它的上限为64位)。 尚不清楚的另一点(尽管它不应更改任何当前有效的答案):虽然c可以解释为打印的字符数或小数点后的空格数,但是程序必须c以某种相关方式使用决定要打印多少个字符。换句话说,divide(2,3,2)输出应该比divide(2,3,500); 短得多。不考虑印刷500个字符是不行的c。 我实际上并不在乎函数的名称。d可以打高尔夫球。 输入值 函数调用和读取stdin均被接受。如果您从阅读stdin,则集合中未包含的任何字符[-0123456789]均被视为参数定界符。 输出量 stdout如上所述的字符。 例 对于divide(2,3,5),以下所有都是可接受的输出: 0.666 0.667 .6666 .6667 0.666 0.667 .6666 .6667 +0.666 +0.667 +.6666 +.6667 另一个示例:divide(371,3,5)以下是所有可接受的输出: 123.6 123.7 123.6 123.7 +123.6 +123.7 123.66666 …

30
实施部门
用您喜欢的语言实现除法算法,该算法可以处理整数除法。它只需要处理正数-但是如果处理负数和混合符号除法,也需要加分。结果四舍五入为分数结果。 该程序可能不包含/,\,div或类似的运营商。它必须是不使用语言的本机除法功能的例程。 您只需要处理32位除法。不允许使用重复减法。 输入值 在stdin上输入两个输入,并用新行或空格分隔(您的选择) 740 2 输出量 在这种情况下,输出为370。 最短的解决方案就是胜利。

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.