201301 JAVA题目0-1级

题目描述

编写一个函数,传入一个int型数组,返回该数组能否分成两组,使得两组中各元素加起来的和相等,并且,所有5的倍数必须在其中一个组中,所有3的倍数在另一个组中(不包括5的倍数),能满足以上条件,返回true;不满足时返回false。

输入描述:

第一行是数据个数,第二行是输入的数据

输出描述:

返回true或者false

输入例子:
4
1 5 -5 1
输出例子:
true
 1 import java.util.*;
 2
 3 public class Main46 {
 4     public static void main(String[] args) {
 5         Scanner sc = new Scanner(System.in);
 6         while(sc.hasNext()){
 7             int n = sc.nextInt();
 8             int sum1 = 0, sum2 = 0;
 9             int[] a = new int[n];
10             int count = 0;
11             for(int i =0;i<n;i++){
12                 int tmp = sc.nextInt();
13                 if(tmp%5==0){
14                     sum1+=tmp;
15                 }
16                 else if(tmp%3==0)
17                     sum2 += tmp;
18                 else{
19                     a[count++] = tmp;
20                 }
21             }
22             int sum = Math.abs(sum1-sum2);//这里只考虑绝对值就可以了
23             System.out.println(f(0,count,a,0,sum));
24         }
25     }
26
27     public static boolean f(int i ,int n,int[] a,int result,int sum){
28         if(i==n){
29             return Math.abs(result) == sum;//绝对值相等就可以
30         }
31         else{
32             return (f(i+1,n,a,result+a[i],sum)||f(i+1,n,a,result-a[i],sum));
33         }
34     }
35 }

后边这个递归函数,想不到啊,有人说这是ksum问题,有空可以研究一下。

时间: 2024-10-12 15:59:32

201301 JAVA题目0-1级的相关文章

【华为OJ】201301 JAVA 题目0-1级 将数组分为相等的两组

描述:  编写一个函数,传入一个int型数组,返回该数组能否分成两组,使得两组中各元素加起来的和相等,并且,所有5的倍数必须在其中一个组中,所有3的倍数在另一个组中(不包括5的倍数),能满足以上条件,返回true:不满足时返回false. 知识点: 语言基础,字符串,循环,函数,指针,枚举,位运算,结构体,联合体,文件操作,递归    题目来源: 内部整理  练习阶段: 初级  运行时间限制: 10Sec 内存限制: 128MByte 输入: 输入输入的数据个数 输入一个int型数组 输出: 返

201301 JAVA 题目2-3级

题目描述 请编写一个函数(允许增加子函数),计算n x m的棋盘格子(n为横向的格子数,m为竖向的格子数)沿着各自边缘线从左上角走到右下角,总共有多少种走法,要求不能走回头路,即:只能往右和往下走,不能往左和往上走. 输入描述: 输入两个正整数 输出描述: 返回结果 输入例子: 2 2 输出例子: 6 1 import java.util.*; 2 public class Main { 3 public static void main(String[] args) { 4 Scanner s

第五届蓝桥杯全国软件设计大赛--2013年校内选拔赛Java题目

第五届蓝桥杯全国软件设计大赛 2013年校内选拔赛Java题目 一.考生注意: (1)[结果填空题]要求参赛选手根据题目描述直接填写结果.求解方式不限.不要求源代码. 把答案存入[考生文件夹]下对应题号的文件中即可. (2)[代码填空题]要求参赛选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确.完整.所填写的代码不超过一条语句(即中间不能出现分号). 把填空的答案(仅填空处的答案,不包括题面已存在的代码)存入[考生文件夹]下对应题号的文件中中即可. (3)[编程题]要求选手设计

搜狗一道java题目 关于对象 synchronized 关键字作用在 int, integer

第一次见到这个题目,我觉得自己没学到java,太浅了,其实这个问题没有考synchronized关键字,只是考什么是对象? 1.在java编程思想的第二章有一句话; 一切都是对象,很可惜int,char 等不是的,虽然他们有他们的包装类,但是java还是保留了int 这些好用的原子类型, 对于synchronized后面可以跟对象和.class所以 字符串是对象可以,Integer对象可以,ExampleCLass.class可以. 我想问的是,数组是对象吗? 查了一下,是对象,所以数组也是答案

java 题目

1.什么是事务控制?答:事务控制就是将一系列操作当成一个不可拆分的逻辑单元,保证这些操作要么都成功,要么都失败.在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序.事务是恢复和并发控制的基本单位.事务应该具有4个属性:原子性.一致性.隔离性.持续性.这四个属性通常称为ACID特性.原子性(atomicity).一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做.一致性(consistency).事务必须是使数据库从一个一致性状态变到另一个一致性状态.一致

有关Java 5.0+ 并发包的探讨-2 section

有关Java 5.0+ 并发包的探讨-2 section 博客分类: Core Java JavathreadAccessF# 前面文章用直接使用Thread类的start方法来新启动一个线程,看起来貌似没有什么问题,问题就在于线程使用场景的需求上,如果希望每个一段时间自动运行一次这个线程,如果想使用线程池,这个Start方法就完全不够了.下面我们来看看Java并发包中的Executor接口吧 Java代码   public interface java.util.concurrent.Exec

java:[1,0] illegal character: \65279 问题

部署项目的时候报下面错误 [java] view plaincopyprint? java:[1,0] illegal character: \65279 java:[1,10] class, interface, or enum expected 表面看着该文件确实没错.看不出来问题,后来从SVN上更新下代码以后.发现本地也不报错.后来通过Eclipse查看了该xxx.java类的属性,才发现玄机所在: 编译有问题的文件属性:(注意最以下一行 Byte Order Mark is UTF-8

出现错误:Unable to load configuration. - action - file:/E:/Java/Tomcat7.0/apache-tomcat-7.0.68-windows-x64/apache-tomcat-7.0.68/webapps/SSH2Integrate/WEB-INF/classes/struts.xml:8:43

严重: Exception starting filter struts2 Unable to load configuration. - action - file:/E:/Java/Tomcat7.0/apache-tomcat-7.0.68-windows-x64/apache-tomcat-7.0.68/webapps/SSH2Integrate/WEB-INF/classes/struts.xml:8:43 at org.apache.struts2.dispatcher.Dispat

Java从0到全栈-Java语言概述与开发环境搭建

Java从0到全栈-Java语言概述与开发环境搭建 Java从0到全栈 Java语言概述 Java发展历史 Java之父-James Golsing 起源 1991年,SUN(Standford University Network)公司的James Golsing领导的工程师小组想要开发一种用于像电视机.微波炉.电话这样的消费类电子产品的小型计算机语言,该产品的特点是由于不同的厂商选择不同的CPU和操作系统,因此要求该语言不能和特定的体系结构绑定在一起,也就是跨平台的.最初将这个语言命名为Oa