首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

检查数组对是否可以被 k 整除(余数配对)

题目 给你一个整数数组 arr 和一个整数 k ,其中数组长度是偶数,值为 n 。 现在需要把数组恰好分成 n / 2 对,以使每对数字的和都能够被 k 整除。...示例 2: 输入:arr = [1,2,3,4,5,6], k = 7 输出:true 解释:划分后的数字对为 (1,6),(2,5) 以及 (3,4) 。...示例 3: 输入:arr = [1,2,3,4,5,6], k = 10 输出:false 解释:无法在将数组中的数字分为三对的同时满足每对数字和能够被 10 整除的条件。...解题 对所有的数求余,如有负数再 +k,再求余 multiset 不断的删除 一个数 a,和 k-a class Solution { //C++ public: bool canArrange... freq(k,0); for(auto a : arr) freq[(a%k+k)%k]++; if(freq[0]&1)//直接能被整除的是奇数个

1.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【C语言程序设计——函数】素数判定(头歌实践教学平台习题)【合集】

    任务描述 本关任务:编写一个判断是否素数的子函数,在主函数中输入一个整数,并输出是否为素数的信息。...循环条件在每次循环迭代开始时进行检查,如果为真,则执行循环体中的代码。更新表达式在每次循环体执行完后执行,用于更新循环变量。...在程序中的应用场景 判断整除关系:在判断一个数是否能被另一个数整除时非常有用。如前面判断素数的代码中,if (a % 2 == 0)用于判断a是否能被 2 整除。如果余数为 0,就表示能整除。...这是一种常见的用法,通过判断余数是否为 0 可以确定两个数之间的整除特性。 循环分组:在一些需要按照一定周期或分组进行操作的程序中也经常用到。...与之相对的概念是合数,合数是指除了能被 1 和本身整除外,还能被其他数(0 除外)整除的自然数。比如 4(能被 1、2、4 整除)、6(能被 1、2、3、6 整除)、8 等都是合数。 2.

    5410

    C语言每天一题:打印1~100之间的奇数

    解法思路:整数中,能被2整除的数是偶数,不能被 2 整除的数是奇数,奇数的个位为 1,3,5,7,9。对于 1~100 之间的奇数,我们可以进⾏如下操作: 1....利⽤循环语句 for 从 1 开始迭代到 100; 2. 使⽤条件语句 if 来检查每个数字是否为奇数(即除以 2 余数不为 0 ); 3....如果数字是奇数,则我们使⽤ printf 函数将其打印到控制台上,并在数字之间添加⼀个空 格; 4. 最后,我们在 main 函数中返回 0 ,表⽰程序已成功执⾏。...• 特别说明:对于每个相邻的奇数,他们的差为 2,因此我们可以在 for 循环语句中迭代时只遍历 奇数⽽省略了判断的过程。...循环语句,将i初始化为1,当i不⼤于100时进⼊循环,i的值加⼀后继续判断进⼊循环的条件     for (i = 1; i <= 100; i++)     {         //判断当前i的值是否为奇数

    19010

    算法修炼之练气篇(Python版)——练气一层初期

    题目 2786: ✨判断能否被3、5、7整除 题目描述 给定一个整数,判断它能否被3,5,7整除,并输出以下信息: 1、能同时被3,5,7整除(直接输出3 5 7,每个数中间一个空格); 2、只能被其中两个数整除...例如:3 5或者 3 7或者5 7,中间用空格分隔); 3、只能被其中一个数整除(输出这个除数); 4、不能被任何数整除,输出小写字符‘n’,不包括单引号。 输入格式 输入一行,包括一个整数。...这里 divisible_by_3 的值为 True,因为 105 可以被 3 整除。...这里 divisible_by_5 的值为 True,因为 105 可以被 5 整除。...这里 divisible_by_7 的值为 True,因为 105 可以被 7 整除。

    8510

    【面试高频题】难度 35,状态压缩 DP 及其优化

    i(i=1)整除 第 2 个位置(i=2)上的数字是2,2能被 i(i=2)整除 第 2 个优美的排列是 [2, 1]: 第 1 个位置(i=1)上的数字是2,2能被 i(i=1)整除 第...2 个位置(i=2)上的数字是1,i(i=2)能被 1 整除 说明: N是一个正整数,并且不会超过 15。...状态压缩 DP 利用数据范围不超过 15,我们可以使用「状态压缩 DP」进行求解。 使用一个二进制数表示当前哪些数已被选,哪些数未被选,目的是为了可以使用位运算进行加速。...我们可以通过一个具体的样例,来感受下「状态压缩」是什么意思: 例如 代表值为 1和值为 3 的数字已经被使用了,而值为 2的节点尚未被使用。...然后再来看看使用「状态压缩」的话,一些基本的操作该如何进行: 假设变量 state存放了「当前数的使用情况」,当我们需要检查值为 k的数是否被使用时,可以使用位运算 a = (state >> k) &

    52630

    【C语言程序设计——函数】亲密数判定(头歌实践教学平台习题)【合集】

    循环条件在每次循环迭代开始时进行检查,如果为真,则执行循环体中的代码。更新表达式在每次循环体执行完后执行,用于更新循环变量。...跳转语句(continue 语句) 基本原理:continue语句用于跳过当前循环迭代的剩余部分,直接开始下一次循环迭代。...举例说明 我们以数字 220 和 284 为例来直观理解亲密数的定义: 对于 220 来说,它的因子有 1、2、4、5、10、11、20、22、44、55、110 这些数(找因子的方法就是看哪些自然数能够整除...三、判断亲密数的方法 判断两个数是否为亲密数,通常可以按照以下步骤来进行: 1. 计算数 A 的各因子,并求其和存于 B 找出自然数 A 的所有因子(除了 A 本身以外)。...比如我们要判断两个数是否是亲密数,先确定其中一个数为 A,然后从 1 开始依次判断每个小于 A 的自然数能否整除 A,如果能整除,那么这个自然数就是 A 的因子。

    3700

    素数判定(素数)- HDU 2012

    刚学编程的时候,我们大多需要做的一道题,那就是用C语言来判定一个数是否是素数。...那时候很自然的会想到,对于数n,直接遍历一下n以下的数x,如果n%x等于0,说明可以被整除,也就不是素数。...从定理2可知,如果一个整数不能被小于或等于其平方根的素数整除,则它就是素数 。 OK,我们的第二种解法就是遍历小于sqrt(n)的数。...于是经过种种努力与机缘巧合,米勒·罗宾两个人研究出了一个测试算法,该算法也因此以他们的名字命名。 米勒·罗宾测试的错误率至多为1/2的s次方,s为迭代次数。...另外一个想说的事情是,数学方面的题目由于理论性太强,就比如之前的hash函数,也是数学上面的结论,我们很难真正从本质是去理解为什么,也因此在源码中不做这方面的注释工作,数学方面的结论就当是模板函数,如果你天资聪颖

    1.4K10

    仓颉语言实战——3.表达式

    表达式可以是一个单独的值(如字面量或变量),也可以是更复杂的结构(如函数调用或逻辑操作)。 1. 基本表达式 基本表达式包括字面量、变量和简单的运算操作。...一、while 循环 while 是一种前置条件判断的循环表达式,它在每次迭代开始之前都会检查条件,只有条件为 true 时,循环体才会执行。...六、综合案例:结合多种控制流表达式 以下是一个结合了 while、break 和 continue 的综合案例,计算所有小于 50 的正整数中,能够被 3 整除但不能被 5 整除的数字之和。...代码示例:综合控制流应用 let n = 1 let total= 0 while (n < 50) { if (n % 5 == 0) { # 跳过能被5整除的数字...continue 跳过能被 5 整除的数字。 只有能被 3 整除的数字会累加到 total 中。

    9010

    循环结构(三)

    例:输入一个正整数判断并输出它是否是素数。 思路分析:素数也称为质数,其数学定义为:一个大于1的正整数,除了1和它本身外,不能被整除以其他正整数。...根据定义,该问题可以采用穷举法进行实现,即对于正整数n,从2开始到√n依次尝试每个数是否能够被n整除,如果存在能够这样的数,则n不是素数;如果不存在这样的数,则n是素数。...进一步分析可以知道,在找到第一个可以整除的数后,无需继续检查,直接结束循环即可。...,进入下一次循环迭代。...例:统计在100到1000之间不能被7整除的整数的个数。 思路分析:解决该问题需要对指定范围中的每一个整数进行检查,如果不能被7整除,就进行计数加1;若能被7整除,则不加1。

    34210

    【C语言必刷题】1.打印1~100之间的奇数

    题目描述 使用C语言写一个程序打印1~100之间的奇数,要求输出的数字用空格分隔。 2. 解题思路 一个整数,能被2整除就是偶数,不能被2整除的数是奇数,奇数的个位是1,3,5,7,9。...我们可以用以下方法: 利用循环语句for从1开始迭代到100; 利用if语句判断每个是否为奇数(即除以2余数不为0) 如果数字是奇数,就使用printf函数将其打印输出,并在数字之间添加一个空格...特别说明:对于两个相邻的奇数,它们的差为2,因此我们可以在for循环语句中迭代时只遍历奇数而省略判断过程。 3....= 0) // 判断当前数字是否为奇数 { printf("%d ", i); // 如果是奇数,则打印该数字 } } return 0; } // 方法2: #include<stdio.h

    16010

    TW洞见 | 崔鹏飞:Scala中Stream的应用场景及其实现原理

    假设一个场景 需要在50个随机数中找到前两个可以被3整除的数字。...听起来很简单,我们可以这样来写: 一个产生50个随机数的函数; 一个检查某数字是否能被3整除的函数; 最后,对含有50个随机数的List做filter操作,找到其中所有能够被3整除的数字,取其中前两个...把这段代码在Scala的console里面跑一下,结果是这样的: 其最终结果固然是没有问题,找到了48和27这两个数字。...但是非常明显的可以看出,isDivisibleBy3被调用了50次,找到了远多于两个的能被3整除的数字,但是最后我们只关心其中前两个结果。 这似乎有点浪费,做了很多多余的运算。...顺着这个思路很容易写出如下很像Java的代码: 创建一个可变的List,开始遍历随机数,找到能被3整除的就把它塞进可变List里面去,找够了两个就返回。

    77840

    c++版本回文质数 Prime Palindromes 题解(洛谷)

    例如,121、131、313都是回文质数,因为它们不仅是质数(只能被1和自身整除),而且从左到右和从右到左读都是一样的。 在寻找回文质数时,需要同时检查一个数字是否是质数和是否是回文数。...这涉及到分别检查数字是否能被其他整数整除(质数检查)和数字的各个数字是否对称(回文数检查)。...因为四位及四位以上的偶数位的回文数都可以被11整除,故不存在偶数位的回文质数。...下面,我们将会建立三个函数,用于检查一个数是否是回文质数,当然,为了节省时间,我们检查的顺序也是有一定规律的 我们将会先检查或者数的位数,因为一个数如果是回质数,那么这个数肯定是奇数位(除了11), 因此...,不能被其他正整数整除的大于1的整数。

    42010

    用go语言,如果一个整数能够被它的各个数位上数字的和整除, 我们称这个整数为哈沙德数(Harsh

    用go语言,如果一个整数能够被它的各个数位上数字的和整除, 我们称这个整数为哈沙德数(Harshad number)。...给定一个整数 x, 如果 x 是哈沙德数,则返回 x 各个数位的数字和; 如果不是,则返回 -1。 输入:x = 18。 输出:9。 解释: x 各个数位上的数字之和为 9 。18 能被 9 整除。...大体步骤如下: 1.函数定义: • 定义了一个函数 sumOfTheDigitsOfHarshadNumber,接受一个整数 x 作为参数,目的在于计算该数字的各个数位的和并判断是否为哈沙德数。...4.判断是否为哈沙德数: • 在计算完数字和 s 之后,检查 x 是否能被 s 整除(x % s)。如果不能整除,函数返回 -1,表示 x 不是哈沙德数。...• 在十进制中,位数与数字大小的对数成正比(d = log10(x)),因此可以认为时间复杂度是 O(log x)。

    8720

    用函数实现求所有(50~100)之间素数的和

    is_prime的函数,用于判断一个整数是否是素数。...而大于等于2的数,如果在(2, 根号n]范围内没有其他整数能够整除它,那么它就是素数。 第1015行定义了一个名为`sum_primes`的函数,输入参数为起始和结束数字。...第13~15行在循环过程中判断当前数字是否是素数,如果是,则加入到primes_sum中。 第16行使用return语句将计算的所有素数和作为结果返回。...注意:在判断一个整数是否是素数时,只需要检查从2到根号n之间的数字就行了。这是因为如果n可以被m整除,那么m一定有一个对应的因子k,而k也可以被n/m整除。...其中至少有一个因子小于或等于根号n,而另一个则大于或等于根号n。因此如果我们遍历到根号n还没有找到能够整除n的因子,那么n一定是素数。

    4700
    领券