Questions tagged «integer»

对于涉及整数操作的挑战。

30
上下上下
挑战: 给定正整数输入n,创建一个遵循此模式的向量: 0 1 0 -1 -2 -1 0 1 2 3 2 1 0 -1 -2 -3 -4 -3 -2 -1 ... ±(n-1) ±n 或者用词来解释:向量从处开始0,递增1直到它达到不属于序列的最小奇数正整数,然后递减直到它达到最小(幅度)甚至是负整数。不是序列的一部分。它以这种方式继续直到n到达。该序列将在正端n,如果n是奇数,阴性n,如果n是偶数。 输出格式灵活。 测试用例: n = 1 0 1 ----------- n = 2 0 1 0 -1 -2 ----------- n = 3 0 1 0 -1 …

30
重复!阶乘!
不要与查找阶乘相混淆! 介绍 整数的阶乘n可以由n计算 != Ñ × (ñ - 1 )× (ñ - 2 )× (。。。)× 2 × 1n != n × (n − 1 )× (n − 2 ) × (。。。)× 2 × 1ñ!=ñ×(ñ-1个)×(ñ-2)×(。。。)×2×1个n!=n\times(n-1)\times(n-2)\times(...)\times2\times1 这是相对容易的,没有什么新鲜的。但是,阶乘可以扩展为双阶乘,例如 n !!= Ñ × (ñ - 2 )× (ñ - 4 )× (。。。)× 4 × …

30
撤消数字范围
给定一个数字n,创建从0到的范围非常简单n-1。实际上,许多语言都以内置方式提供此操作。 以下CJam程序读取一个整数,然后打印出这样的范围(请在线尝试!): ri, 请注意,它打印出没有分隔符的数字。 挑战 您的任务是逆转此过程。您应该编写一个程序,给定一个代表范围的字符串,该程序返回用于产生该范围的数字。 技术指标 给出的数字没有任何分隔符。 您可以假定该字符串形成有效范围。 您可以为范围使用基于0或1的索引。 您可以假设正确的输出将永远不会超过32,767(因此有效输入的长度永远不会超过152,725)。 您可以假设正确的输出将始终为正(因此您不必处理0或负)。 这是代码高尔夫球,因此最短的竞争性答案(以字节为单位)获胜。 测试用例 0索引: 0123 -> 4 0 -> 1 0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 -> 101 1索引: 1234 -> 4 1 -> 1 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 -> 100

30
从1到n的数字交织,相同的数字反转
一个简单的: 取小于1000 的正整数n,并输出从1到n的整数与从n到1的整数交织在一起。您必须连接数字,以便它们之间没有任何定界符出现。 测试用例: n = 1 11 n = 4 14233241 n = 26 12622532442352262172081991810171116121513141413151216111710189198207216225234243252261 n = 100 110029939849759669579489399210911190128913881487158616851784188319822081218022792378247725762675277428732972307131703269336834673566366537643863396240614160425943584457455646554754485349525051515052495348544755465645574458435942604161406239633864376536663567346833693270317130722973287427752676257724782379228021812082198318841785168615871488138912901191109299389479569659749839921001 这是代码高尔夫球,因此每种语言中以字节为单位的最短提交胜出。鼓励解释。

14
生成n进制数
次要数字是一个正整数,其主要因子(无多重性)均小于或等于其平方根。4是次级数,因为它的唯一质数是2,它等于其平方根。但是,15它不是次要数字,因为它有5一个素数,它大于平方根(~ 3.9)。因为所有素数都以素数为素,所以素数都不是次要数。前几个辅助数字如下: 1, 4, 8, 9, 12, 16, 18, 24, 25, 27, 30, 32, 36, 40, 45, 48, 49, 50, 54, 56 除所有素数必须小于或等于其立方根之外,三次数的定义与此类似。前几个三级数如下: 1, 8, 16, 27, 32, 36, 48, 54, 64, 72, 81, 96, 108, 125, 128, 135, 144, 150, 160, 162 通常,一个n元数是一个其素因子都小于或等于其n次方的数。因此,一个正整数XXx是n进制数当且仅当它的每一个素数因子的ppp满足pñ≤ Xpñ≤Xp^n ≤ x。因此,初等数均为正整数(所有素数均小于或等于其自身),四进制数的所有素数均小于或等于其第四根,依此类推。 挑战 给定整数k和n作为输入,输出k第n进制数。k可以是零索引或一索引(您的选择),并且n始终为正。 例子 …


5
数学表达式中“ /”和“÷”之间的历史差异
介绍: 受到关于表达式的讨论的启发,讨论已经进行了很多年。6÷2(1+2)6÷2(1+2)6÷2(1+2) 使用表达式,数学家将很快看到正确答案是,而具有简单数学背景的人从学校毕业后将很快看到正确答案是。那么,这种争议何在呢?因此得出不同的答案呢?在编写方式时有两个相互冲突的规则。一种是由于零件,一种是由于分隔符号。6÷2(1+2)6÷2(1+2)6÷2(1+2)1119996 ÷ 2 (1+2)6÷2(1+2)6÷2(1+2)2(÷ 虽然这两个数学家和“普通人”将使用PEMDAS(括号-指数-司/乘法-加法/减法),数学家表达被这样下面评价,因为是一样例如单项式又名“ 由于并置的隐式乘法导致的单个项 ”(因此in的一部分),其计算结果将不同于(二项式又称为两个项):2 (3 )2(3)2(3)2 倍22X22x^2PPEMDAS2 × (3 )2×(3)2×(3) 6 ÷ 2 (1 + 2 )→ 62 (3 )→ 66→ 16÷2(1个+2)→62(3)→66→1个6÷2(1+2) → \frac{6}{2(3)} → \frac{6}{6} → 1 而对于“普通人”,和将是相同的(因此是in的一部分),因此他们将改用它:2 (3 )2(3)2(3)2 × (3 )2×(3)2×(3)MDPEMDAS 6 ÷ 2 (1 + 2 )→ 6 / 2 × …

30
一半,一半,一半
请考虑以下数字顺序: 0,12,14,34,18,38,58,78,116,316,516,716,916,1116,1316,1516,132,332,532,…0,1个2,1个4,34,1个8,38,58,78,1个16,316,516,716,916,1116,1316,1516,1个32,332,532,… 0, \frac{1}{2}, \frac{1}{4}, \frac{3}{4}, \frac{1}{8}, \frac{3}{8}, \frac{5}{8}, \frac{7}{8}, \frac{1}{16}, \frac{3}{16}, \frac{5}{16}, \frac{7}{16}, \frac{9}{16}, \frac{11}{16}, \frac{13}{16}, \frac{15}{16}, \frac{1}{32}, \frac{3}{32}, \frac{5}{32}, \dots 它枚举单位间隔中的所有二进制分数。[0,1)[0,1个) [0, 1) (为简化此挑战,第一个元素是可选的:您可以跳过它,并考虑序列以1/2开头。) 任务 编写一个程序(完整的程序或功能),以... 选择以下行为之一: 输入n,输出序列的第n个元素(0索引或1索引); 输入n,输出序列的前n个元素; 不输入任何内容,输出可以一一取整的无限数序列; 规则 您的程序至少应支持前1000个项目; 您可以根据需要选择输出小数或分数(内置,整数对,字符串)。 此问题中不允许输入/输出为二进制数字; 这是代码高尔夫球,最短的代码获胜; 不允许出现标准漏洞。 测试用例 input output 1 1/2 0.5 2 1/4 0.25 3 3/4 0.75 …

8
可以从素数生成方树年轮吗?
显然是的!三个简单的步骤。 步骤1 令f(n)表示素数计数函数(素数小于或等于n)。 如下定义整数序列 s(n)。对于每个正整数n, 将t初始化为n。 只要t既不是素数也不是1,则将t替换为f(t)并进行迭代。 迭代次数为s(n)。 该迭代过程是保证最终因为˚F(Ñ)< ñ所有Ñ。 考虑例如n= 25。我们初始化t =25。由于这不是素数也不是1,我们计算f(25)为9。这成为t的新值。这既不是素数也不是1,所以我们继续:f(9)是4。我们再次继续:f(4)是2。因为这是素数,所以我们在这里停止。我们完成了3次迭代(从25到9,然后到4,再到2)。因此s(25)为3。 序列的前40个词如下。该序列不在OEIS中。 0 0 0 1 0 1 0 2 2 2 0 1 0 2 2 2 0 1 0 3 3 3 0 3 3 3 3 3 0 3 0 1 1 1 1 1 …

30
找出以n结尾,可被n整除且其数字总和为n的最小正整数
全部在标题中... 以一个正整数作为输入n>=12,...进行标题说明的操作。 是的,这是在OEIS A187924上。 一些测试案例 12 -> 912 13 -> 11713 14 -> 6314 15 -> 915 16 -> 3616 17 -> 15317 18 -> 918 19 -> 17119 20 -> 9920 40 -> 1999840 100-> 99999999999100 这是代码高尔夫球。以字节为单位的最短代码胜出!

30
用最大位数减少数字
任务: 给定十进制数字系统中的整数,将其减少为一个十进制数字,如下所示: 将数字转换为十进制数字列表。 找出最大的数字D 从列表中删除D。如果出现多个D,请从左侧选择第一个(最重要的位置),所有其他D应保持不变。 将结果列表转换为十进制数字,然后将其乘以D。 如果数字大于9(具有超过1个十进制数字),请重复整个过程,并将结果输入其中。得到一个数字的结果时停止。 显示结果。 例: 26364 -> 1. 2 6 3 6 4 2. The largest digit is 6, so D=6 3. There are two occurrences or 6: at positions 1 and 3 (0-based). We remove the left one, at position 1 and get the list …

30
我的条形码有效吗?
的EAN-8条码包括的信息和第八校验和数字7位数字。 通过将数字分别乘以3和1,将结果相加,然后从下一个10的倍数中减去,来计算校验和。 例如,给定数字2103498: Digit: 2 1 0 3 4 9 8 Multiplier: 3 1 3 1 3 1 3 Result: 6 1 0 3 12 9 24 这些结果数字的总和为55,所以校验和数字为60-55 = 5 挑战 给定一个8位条形码,您的任务是验证它是否有效-如果校验和有效,则返回真实值,否则返回false。 您可以采用以下任何形式的输入: 长度为8个字符的字符串,代表条形码数字 8个整数的列表,条形码的数字 一个非负整数(您可以假设前导零而不给出任何前导零,即1= 00000001,或请求输入中给出零) 禁止计算EAN-8校验和的内置函数(即,使用前7位数字并计算最后7位数字)。 这是代码高尔夫球,因此最短的程序(以字节为单位)获胜! 测试用例 20378240 -> True 33765129 -> True 77234575 -> True 00000000 …

30
找到最高的唯一数字
令人惊讶的,我们还没有一个简单的“找到最高位”的挑战,但我认为这是一个有点太微不足道了。 给定一个非负整数的输入,返回在整数中找到的最高的唯一(即不重复)数字。如果没有唯一数字,则您的程序可以执行任何操作(不确定的行为)。 输入可以作为单个整数,字符串或数字列表。 测试用例 12 -> 2 0 -> 0 485902 -> 9 495902 -> 5 999999 -> Anything 999099 -> 0 1948710498 -> 7 这是代码高尔夫球,因此每种语言中最少的字节会获胜!

30
让我们减少单调
...但是嘿,不必太严格。 给定严格正整数的非空数组,请确定其是否为: 单调严格减少。这意味着每个条目都严格小于上一个条目。 单调不增加,但不严格减少。这意味着每个条目都小于或等于前一个条目,并且该数组不属于上述类别。 以上都不是。 请注意以下特殊情况: 具有单个数字的数组是单调严格递减的(很明显如此)。 重复相同编号的数组是单调非递增的,但不是严格递减的。 规则 您可以提供程序或功能 输入可以采用任何合理的格式:数组,列表,数字用空格分隔的字符串,... 您可以分别为三个类别选择任何三个一致的输出。例如,输出可以是数字0,1,2; 或字符串1 1,1 0空字符串。 以字节为单位的最短代码获胜 测试用例 单调严格递减: 7 5 4 3 1 42 41 5 单调不增加,但不严格减少: 27 19 19 10 3 6 4 2 2 2 9 9 9 9 以上都不是: 1 2 3 2 10 9 8 7 …

29
它是前缀代码吗?
在信息论中,“前缀代码”是一个字典,其中所有键都不是另一个的前缀。换句话说,这意味着没有一个字符串以其他任何字符串开头。 例如,{"9", "55"}是前缀代码,但{"5", "9", "55"}不是。 这样做的最大优点是,可以将编码的文本记下来,并且它们之间没有分隔符,并且仍然可以唯一地解密。这在诸如Huffman编码之类的压缩算法中得到了体现,该算法始终会生成最佳的前缀代码。 您的任务很简单:给定一个字符串列表,确定它是否是有效的前缀代码。 您的输入: 将是任何合理格式的字符串列表。 仅包含可打印的ASCII字符串。 将不包含任何空字符串。 您的输出将是一个true / falsey值:如果是有效的前缀代码,则为True,否则为falsey。 这是一些真实的测试用例: ["Hello", "World"] ["Code", "Golf", "Is", "Cool"] ["1", "2", "3", "4", "5"] ["This", "test", "case", "is", "true"] ["111", "010", "000", "1101", "1010", "1000", "0111", "0010", "1011", "0110", "11001", "00110", "10011", "11000", "00111", "10010"] 以下是一些错误的测试案例: ["4", "42"] …

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.