判断一组数能否分成相等两组
题目描述
编写一个函数,传入一个int型数组,返回该数组能否分成两组,使得两组中各元素加起来的和相等,并且,所有5的倍数必须在其中一个组中,所有3的倍数在另一个组中(不包括5的倍数),能满足以上条件,返回true;不满足时返回false。
输入描述:
第一行是数据个数,第二行是输入的数据
输出描述:
返回true或者false
示例1
输入
4 1 5 -5 1
输出
true
Java实现
import java.util.*;public class Main {public static void main(String[] args) {Scanner sc=new Scanner(System.in);while(sc.hasNext()){int n = sc.nextInt();int sum1 = 0, sum2 = 0;int[] a = new int[n];int count = 0;for(int i =0;i<n;i++){int tmp = sc.nextInt();if(tmp%5==0){sum1+=tmp;}else if(tmp%3==0)sum2 += tmp;else{a[count++] = tmp;}}int sum = Math.abs(sum1-sum2);//这里只考虑绝对值就可以了System.out.println(f(0,count,a,0,sum));}}public static boolean f(int i ,int n,int[] a,int result,int sum){if(i==n){return Math.abs(result) == sum;//绝对值相等就可以}else{return (f(i+1,n,a,result+a[i],sum)||f(i+1,n,a,result-a[i],sum));}}
}
判断一组数能否分成相等两组相关推荐
- 小学奥数 7834 分成互质组 python
http://noi.openjudge.cn/math/7834/ 参考: 信息学奥赛一本通(1221:分成互质组) https://blog.csdn.net/lvcheng0309/articl ...
- C++将一组数随机分成几个小组
在生活中难免会遇到需要对一群人进行拆分小组,对于大的课题组的研究生还会分组开组会汇报确定名单这个事情,针对这些问题写出了下面的代码 #include <iostream> #include ...
- codeforces:C. Doremy‘s City Construction【分两组思想】
目录 题目截图 题目分析 ac code 题目截图 题目分析 全部一个相同数的话,个数 // 2就是答案,因为只能相邻连 不止一个相同数的话,分两组 一组全小于另一组 cnt记录从小到大出现的次数 p ...
- C语言- 循环打印 for循环例子(判断奇偶数) 第四讲
回顾: * 程序目的 猜数游戏(单数) * scanf() //与程序交互的用法 * 流 ...
- 京东笔试——神奇数 【题目描述】东东在一本古籍上看到有一种神奇数,如果能够将一个数的数字分成两组,其中一组数字的和 等于另一组数字的和,我们就将这个数称为神奇数。例如 242 就是一个神奇数,我们能够
2 .神奇数 [ 题目描述]东东在一本古籍上看到有一种神奇数,如果能够将一个数的数字分成两组,其中一组数字的和 等于另一组数字的和,我们就将这个数称为神奇数.例如 242 就是一个神奇数,我们能够将这 ...
- 数组分成两组差值最小 python_数组中的数分为两组,让给出一个算法,使得两个组的和的差的绝对值最小,数组中的数的取值范围是0x100,元素个数也是大于0, 小于100 。...
比如a[]={2,4,5,6,7},得出的两组数{2,4,6}和{5,7},abs(sum(a1)-sum(a2))=0: 比如{2,5,6,10},abs(sum(2,10)-sum(5,6))=1 ...
- 冒泡排序 例题:给出一组数将这组数按从小到大的顺序输出出来
冒泡排序 例题:给出一组数将这组数按从小到大的顺序输出出来 学习笔记,方便自己日后复习,也可供大家参考学习 冒泡排序百度上是这样定义的: 冒泡排序:它重复的走访过要排序的元素列,依次比较两个相邻元素, ...
- (笔试题)将数组分成两组,使两组的和的差的绝对值最小
题目: 数组中的数分为两组,给出一个算法,使得两个组的和的差的绝对值最小数组中的数的取值范围是0<x<100,元素个数也是大于0,小于100 比如a[]={2,4,5,6,7},得出的两组 ...
- 【51】使用51单片机和数码管生成10以内加法及两组数据判断大小
最近小孩练习10以内加法运算,正好手上有块51开发板,写个程序自动生成题目会不会好一些呢. 开发板就是下面图这个 程序分成两部分 1.上电直接运行,是10以内加法,使用两个数码管分别显示两个数字 2. ...
最新文章
- 如何让cxf客户端简单支持ssl
- 传输层 :TCP/UDP 协议(用于封装接口)
- 项目中的一个JQuery ajax实现案例
- 拿下了一个美女图片网站!
- Android 设计模式 - 装饰者模式
- 河马 webshell扫描器对linux服务器进行安全扫描
- [Unity][FlowCanvas] FlowScript 实现基础人物移动
- 百度计算机视觉暑期实习面经(成功上岸!已拿offer)
- PHP距离春节还剩多少天,2019年春节倒计时 现在距离2019年春节还有多少天 - 中国万年历...
- Android开发笔记(十八)书籍翻页动画PageAnimation
- [Avalon]如何实现自定义MarkupExtension.
- 服务器显示连接网络连接失败是怎么回事儿,app出现网络连接失败是什么原因
- java 假设检验_据说假设检验是个很难的题
- 通过简单脚本批量取消新浪微博的关注
- win7、win10常用快捷键
- java四大名著知乎_给四大名著重新取名……从知乎热帖看畅销书起名套路
- NX2007软件下载
- Android动画之仿美团加载数据等待时,小人奔跑进度动画对话框(附顺丰快递员奔跑效果)...
- Linux中的ftp命令怎么写,linux中的ftp命令用法
- 【C#】AutoMapper 使用手册